Comer frito: preguntar si el número exactamente. c ++

Coma tema frito

Bob decidió comer fritos días n, es necesario comprar un frito ai todos los días. tiendas fritos son sólo dos formas de comprar: 1, una sola vez en un solo día para comprar dos frito, 2, comprar un frito hoy en día, la tienda le dio un boleto, vales a cambio de mañana con una frita. No el resto de la compra, la compra de estas dos formas se puede utilizar muchas veces, Xiao Ming no permite entradas para ser desperdiciado, no se permite n manos de día tienen cupones. ¿Puedo pedir sólo para comprar un día frito ai n días.

Dos líneas de entrada, una primera línea de la entero de entrada n (1 <= n <= 100 000), el número de días; segunda fila tiene el número n, el i-ésimo AI (0 <= EA <= 10.000) representa el i Xiao Ming para comprar el número de días de frito.

Si cumple con las necesidades Xiaoming, salida "si", si no se cumplen, la producción de "NO".

entrada de la muestra:
4
1 2 1 2

Resultado de muestra:

(Existen programas: el primer día de la segunda opción, un día para comer, la siguiente opción dos, más el primer día del billete, al día siguiente para comer dos; el tercer día del segundo día con cupones, la primera coma durante tres días a las opciones para el día cuarto, el cuarto día para comer dos)

de entrada de muestra:
3
1 0 1

Resultado de muestra:
NO

(Primer día de las dos alternativas, dejará un billete y al día siguiente en el billete no sirve para nada, tan mal)

: Escala de puntos de prueba
puntos de datos 1-2: n límite superior AI 10 10
puntos de datos 3-5: n 1000 ai límite superior de 10
puntos de datos 6-7: n límite superior AI 10 10 000
puntos de datos 8-10: n límite 100 000 AI el límite superior de 10.000
cada prueba 1000ms punto 262144kb

ideas:

  • Por primera manera, cada vez para comprar dos, es decir, si el primer día quiero comprar es par, entonces una serie de opciones se puede utilizar directamente
  • Si este número es impar días frito, a continuación, un primero, un esquema de dos frito restante para una pluralidad de programas para su uso posterior, un vale para ser gastado en los restantes i + 1 Ángel
  • Así que para determinar las condiciones, si el número de frito necesidad de un día a comprar menos de cero (descripción dada vales para la compra más que el número de hoy, las entradas se pierda), lo que indica que la compra de la manera incorrecta, la salida falsa
  • Bool tipo se puede utilizar para una determinación, si el ciclo a través de todos los días es TRUE, entonces la salida SÍ, de lo contrario, la producción de NO.
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath> 
//#include<iostream>
using namespace std;
int a[111111]={0};//保证最后一位 
int main()
{
	//ios::sync_with_stdio(false);
	int n=0;
	bool flag=true;
	//cin>>n;
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		//cin>>a[i];
		scanf("%d",&a[i]);
	}
	for(int i=0;i<n;i++)
	{
		if(a[i]%2==1)//偶数直接跳过这一天,奇数思考和第二天的关系
		{
			a[i+1]--; 
		} 
		if(a[i+1]<0) 
                 {flag=false;break;}
	}
	if(flag==false)printf("NO"); 
	//"cout<<"NO";
	else if(flag==true)printf("YES");
	//cout<<"YES";
	return 0;
}
Publicado 29 artículos originales · ganado elogios 1 · visitas 946

Supongo que te gusta

Origin blog.csdn.net/qq_44654498/article/details/104902529
Recomendado
Clasificación