Cod sursa(job #1283984)
| Utilizator | Data | 6 decembrie 2014 10:00:21 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 0 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.69 kb |
#include <stdio.h>
#include <stdlib.h>
int s[5000];
int main()
{
FILE *fin, *fout;
int n,i,poz,max,nr;
fin=fopen("ssm.in","r");
fout=fopen("ssm.out","w");
fscanf(fin,"%d",&n);
fscanf(fin,"%d",&nr);
s[0]=nr;
poz=0;
max=nr;
for(i=1;i<n;i++){
fscanf(fin,"%d",&nr);
if(s[i-1]+nr>nr){
s[i]=s[i-1]+nr;
}
else{
s[i]=nr;
}
if(s[i]>max)
max=s[i];
poz=i;
}
fprintf(fout,"%d ",max);
i=poz-1;
while(s[i]>0 && i>=0)
i--;
i++;
fprintf(fout,"%d %d",i+1,poz);
fclose(fin);
fclose(fout);
return 0;
}
