Cod sursa(job #406814)

Utilizator Cristi09Cristi Cristi09 Data 1 martie 2010 20:19:03
Problema Operatii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<stdio.h>
#define NMAX 1000000
long a[NMAX],v[NMAX],n,nr;
long sum;
void read()
{
	FILE*f=fopen("operatii.in","r");
	fscanf(f,"%d",&n);
	int i,o=1;
	for(i=0;i<n;++i)
	{
		fscanf(f,"%d",&a[i]);
		if(a[i])
		{
			if(o){++nr;o=0;}
			a[i]-=1;
			v[i]=1;			
		}
		else o=1;
		if(i>1&&a[i-2]<0)a[i-2]=0;
	}
	fclose(f);
}
int main()
{
	read();
	int i,ok=1,o=1;
	while(ok)
	for(i=ok=0;i<n;++i)
	{
		if(a[i])
		{
			ok=1;
			if(o){++nr;o=0;}
			--a[i];
			++v[i];
		}
		else o=1;
		if(i>1&&a[i-2]<0)a[i-2]=0;
	}
	FILE*g=fopen("operatii.out","w");
	fprintf(g,"%d",nr);
	fclose(g);
	return 0;
}