Pagini recente » Borderou de evaluare (job #2017211) | Cod sursa (job #2151101) | Cod sursa (job #2976017) | Cod sursa (job #1984149) | Cod sursa (job #300986)
Cod sursa(job #300986)
#include <stdio.h>
#include <stdlib.h>
int main() {
long n, *a, min, i, ok,li,lj,mut;
freopen ("operatii.in", "r", stdin);
freopen ("operatii.out", "w", stdout);
scanf ("%ld\n", &n);
a = malloc ((n+2) * sizeof(long));
for (i = 1; i <= n; i++) scanf("%ld", &a[i]);
li = 1;
for (i = 1; i <= n ;i++)
if (a[i] > 0) { li = i;
break; }
a[n+1] = 0;
lj = li; min = a[li]; ok = 0; mut = 0;
while (lj <= n+1)
if (a[++lj] > 0) {
if (a[lj] < min) min = a[lj];
}
else
{ for (i = li; i <= lj -1; i++) a[i] = a[i] - min;
mut = mut +min;
ok = 0;
for (i = li; i <= n; i++)
if (a[i] > 0 ) { ok = 1;
li = i;
break; }
if ( ok == 0) { printf ("%ld",mut);
return 0;}
lj = li;
min = a[li]; }
free (a);
return 0;
}