Cod sursa(job #407132)

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