Cod sursa(job #496016)
Utilizator | Data | 27 octombrie 2010 16:26:28 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <cstdio>
#define Input "ssm.in"
#define Output "ssm.out"
int s,vmax=-500000,bmax,fmax,bc=1,fc,sc=0;
int main()
{
int i,n;
FILE *fin=fopen(Input,"r");
FILE *fout=fopen(Output,"w");
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++)
{
fscanf(fin,"%d",&s);
if(sc<0)
{
sc=s;
bc=i;
fc=i;
}
else
{
sc+=s;
fc=i;
}
if(sc>=vmax)
{
vmax=sc;
bmax=bc;
fmax=fc;
}
}
fprintf(fout,"%d %d %d",vmax,bmax,fmax);
return 0;
}