Pagini recente » Cod sursa (job #2360481) | Cod sursa (job #2967391) | Cod sursa (job #903274) | Cod sursa (job #2566319) | Cod sursa (job #115033)
Cod sursa(job #115033)
//operatii
#include<stdio.h>
FILE * fin=fopen("operatii.in","r");
FILE * fout=fopen("operatii.out","w");
int s[10000];
int rez(long st,long sf);
int rez(long st,long sf)
{
int rezf=0,i,min,j,k;
for(i=st;i<=sf;i++)
if(s[i]!=0){
j=i;
min=s[j];
while(s[j+1]!=0&&j<=sf){
j++;
if(s[j]<min) min=s[j];
}
int start=i;
int stop=j;
for(k=i;k<=j;k++) s[k]=s[k]-min;
rezf+=(rez(start,stop)+min);
i=j+1;
}
return rezf;
}
int main()
{
int n,i;
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++)
fscanf(fin,"%d",&s[i]);
fclose(fin);
int nr=rez(1,n);
fprintf(fout,"%d",nr);
fclose(fout);return 0;}