Cod sursa(job #282433)
Utilizator | Data | 17 martie 2009 17:24:29 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.47 kb |
#include<stdio.h>
#include<string.h>
FILE *f,*g;
long smax,poz,p1,p2,s,n,i,a;
int main()
{ f=fopen("ssm.in","r"); g=fopen("ssm.out","w");
fscanf(f,"%ld",&n);
smax=-99999999; s=0; poz=1; p1=1; p2=1;
fscanf(f,"%ld",&a); smax=a;
for(i=2;i<=n;i++)
{ fscanf(f,"%ld",&a);
if(a+s>0)
{ s=s+a;
if(s>smax)
{ smax=s;
p2=i; p1=poz;
}
}
else { s=0; poz=i+1; }
}
fprintf(g,"%ld %ld %ld",smax,p1,p2);
fclose(g);
return 0;
}