Competition2: Medio cuco quiere comer

Título Contenido
cuco Este examen de la semana, y un total de n días de pruebas el lunes. Él no quería a la semana de exámenes tan cansado, tenía la intención de tener una buena cena todos los días. Se decidió a comer frito todos los días, el cuco del este de ia necesidad de comprar un diario frito. Pero las tiendas frito con el fin de estimular el consumo, sólo hay dos formas de comprar: ① de una sola vez compra dos frito un día. ② comprar un frito hoy, pero para mañana a comprar un frito, la tienda le dará un boleto, al día siguiente para ir y entradas de cobro revertido. No el resto de la compra, la compra de estas dos formas se puede utilizar muchas veces, pero el cuco Este es un niño ahorrativos, abandonó final de la formación, las manos de un billete no se permite al final del entrenamiento. Este cuco muy rica, no es necesario preocuparse por el dinero del este de cuco, el cuco Oriente, pero estúpido, que sólo quería preguntarle si podía comprar un frito de ia semana de exámenes días.

Entrada de formato
de entrada de dos líneas, una primera línea de la entero de entrada n (1 <= n <= 100.000) representa el número de días de semana de examen.
La segunda fila tiene el número n, el i-ésimo AI (0 <= ai <= 10.000) representa el i-ésimo día el número de East frito comprar arrullo.

formato de salida
Si el cuco del Este se encuentran extraña petición, salida "si", si no se cumplen, la producción de "NO". (Salida sin comillas)

Ejemplo de entrada 1

4
1 2 1 2

Ejemplo de salida 1

SI

Ejemplo de entrada 2

3
1 0 1

Ejemplo de Salida 2

NO

Ideas de resolución de problemas
En primer lugar, aunque el cuco este a prueba de hasta 273 días, no es de extrañar hasta diez mil al día para comer frito.
dueño de la tienda frito: secular Fortuna, ¡ah!
Ejem.
cupones restantes que no pueden, por lo que para él todos los días, si hay billete el día antes de tener que usar, porque de lo contrario se pasará el día siguiente no va fuera de fecha.
Por un día, sólo habrá dos situaciones:

  • En este día comer un número impar de frito
  • En este día para comer frito número par

Para un número impar de días de frito, y si de hecho tienen los cupones, a continuación, el consumo de este cupón, entonces simplemente no puede comprar las entradas para Bon appetit hoy. Si usted no tiene entradas, entonces usted tiene que comprar un billete de abajo hoy, y para su uso futuro.
Para un número par de días frito, si hay cupones en la mano, y luego consumir este cupón y comprar un billete para mañana con, si no las manos de cupones, se puede comer Bon Appetit la directa.

Luego está el código:

#include<iostream>
#include<string>

using namespace std;

int day[100000+1];
int n;

bool isable;

bool isOdd(int x)//是否为奇数
{
	if(x%2==0) return false;
	else return true;
}

int main()
{
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>day[i];
	}
	
	isable=false;
	
	int ticket=0;
	for(int d=0;d<n;d++)
	{
		if(isOdd(day[d]))//奇数个生煎
		{
			if(d==n-1)//最后一天
			{
				if(ticket==0) isable=false;
				if(ticket==1) isable=true;
			}
			else
			{
				if(ticket==0)
				{
					 ticket=1;
					 continue;
				}
				if(ticket==1)
				{
					 ticket=0;
					 continue;
				}
			}
		}
		else//偶数个生煎
		{
			if(d==n-1)
			{
				if(ticket==0) isable=true;
				if(ticket==1) isable=false;
			}
			else
			{
				if(ticket==0)
				{
					 ticket=0;
					 continue;
				}

				if(ticket==1) 
				{
					if(day[d]==0)
					{
						isable=false;
						break;
					}
					else
					{
						ticket=1;
						continue;
					}
				}
			}
		}
	}
	
	if(isable) cout<<"YES"<<endl;
	else cout<<"NO"<<endl;
	
	return 0;
}
Publicado 21 artículos originales · ganado elogios 3 · Vistas 412

Supongo que te gusta

Origin blog.csdn.net/qq_44506233/article/details/104981923
Recomendado
Clasificación