Cod sursa(job #416886)
| Utilizator | Data | 13 martie 2010 17:23:55 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 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;
}
