Cod sursa(job #1498067)
Utilizator | Data | 7 octombrie 2015 22:04:56 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.64 kb |
#include<stdio.h>
FILE *fin,*fout;
int val;
int n;
int maxl,maxs,maxb,maxe,sum,b;
int a[6000001];
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]);
}
for(int i=1;i<=n;i++)
{
if(sum<0)
{
sum=a[i];
b=i;
}
else
{
sum+=a[i];
}
if(sum>maxs)
{
maxs=sum;
maxb=b;
maxe=i;
}
}
fprintf(fout,"%d %d %d",maxs,maxb,maxe);
}