Pagini recente » Cod sursa (job #1500609) | Cod sursa (job #308292) | Cod sursa (job #384213) | Cod sursa (job #2567730) | Cod sursa (job #407215)
Cod sursa(job #407215)
#include<stdio.h>
#define NMAX 1000002
long a[NMAX],v[NMAX],n,nr,sum,st=-1,dr;
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;
if(a[i])
{
if(st==-1)st=i;
dr=i;
}
}
else o=1;
sum+=a[i];
}
fclose(f);
}
int main()
{
read();
long i,o=1,dr1;
while(sum)
for(i=st,o=1,st=-1,dr1=dr;i<=dr1;++i)
{
if(a[i])
{
if(o){++nr;o=0;}
--a[i];
++v[i];
--sum;
if(a[i])
{
if(st==-1)st=i;
dr=i;
}
}
else o=1;
}
FILE*g=fopen("operatii.out","w");
fprintf(g,"%d",nr);
fclose(g);
return 0;
}