Cod sursa(job #266012)
Utilizator | Data | 24 februarie 2009 20:29:52 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include<stdio.h>
int n,smax,pmax,umax,sol,solp,solu,i,x;
int main(){
FILE *f = fopen("ssm.in","r");
FILE *g = fopen("ssm.out","w");
fscanf(f,"%d",&n);
fscanf(f,"%d",&smax);
sol = smax , solp = pmax = 1, solu = 1;
for(i=2; i<=n; i++){
fscanf(f,"%d",&x);
if( smax + x >= x )
smax+=x, umax = i;
else
pmax = i, umax = i, smax = x;
if(smax > sol)
sol = smax, solp = pmax, solu = umax;
}
fprintf(g,"%d %d %d",sol,solp,solu);
fclose(f);
fclose(g);
return 0;
}