Cod sursa(job #416881)
| Utilizator | Data | 13 martie 2010 17:21:03 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 85 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include <stdio.h>
int n,s,p,u;
int i,x;
int max,maxp,maxu;
int main(){
FILE *f1 = fopen("ssm.in","r");
fscanf(f1,"%d",&n);
p = u = 1;
fscanf(f1,"%d",&s);
max = s, maxp = p, maxu = u;
for(i=2; i<=n; i++){
fscanf(f1,"%d",&x);
if(s + x > x){
s += x;
u = i;
}
else{
s = x;
u = p = i;
}
if(s > max)
max = s, maxp = p, maxu = u;
}
fclose(f1);
FILE *f2 = fopen("ssm.out","w");
fprintf(f2,"%d %d %d",max,maxp,maxu);
fclose(f2);
return 0;
}
