Cod sursa(job #300980)

Utilizator lucaz0rLuca Liviu lucaz0r Data 7 aprilie 2009 20:33:25
Problema Operatii Scor 70
Compilator c Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <stdio.h>
#include <stdlib.h>
int main() {

	long n, *a, min, i, j,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]);

	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;
}