Cod sursa(job #283574)
Utilizator | Data | 19 martie 2009 13:22:44 | |
---|---|---|---|
Problema | Operatii | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.47 kb |
#include <stdio.h>
int A[1000001];
int main()
{
freopen("operatii.in","r",stdin);
freopen("operatii.out","w",stdout);
int n,i,p,steps=0,r=1;
scanf("%d",&n);
for (i=1;i<=n;i++) scanf("%d",&A[i]);
do
{
p=0;
for (i=r;i<=n;i++) if (A[i]>p) p = A[i];
if (p)
for (i=r;i<=n;i++)
if (A[i]==p) {
steps++;
while (A[i]==p) A[i]--,i++;
}
while (A[n]==0) n--;
while (A[r]==0) r++;
} while (p);
printf("%d",steps);
}