Pagini recente » Cod sursa (job #3228921) | Cod sursa (job #2426343) | Cod sursa (job #1413666) | Cod sursa (job #2864955) | Cod sursa (job #115032)
Cod sursa(job #115032)
//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;}