Cod sursa(job #1497795)
Utilizator | Data | 7 octombrie 2015 12:58:53 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 75 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.58 kb |
#include<stdio.h>
FILE *fin,*fout;
int a[6000001];
int n;
int maxl,maxs,maxp,s,l;
int main()
{
fin=fopen("ssm.in","r");
fout=fopen("ssm.out","w");
fscanf(fin,"%d",&n);
maxs=-2000000000;
for(int i=1;i<=n;i++)
{
fscanf(fin,"%d",&a[i]);
s+=a[i];
l++;
if(s>maxs)
{
maxs=s;
maxl=l;
maxp=i;
}
else if(s<0)
{
s=0;
l=0;
}
}
maxp-=maxl-1;
maxl+=maxp-1;
fprintf(fout,"%d %d %d",maxs,maxp,maxl);
}