Cod sursa(job #1498047)
Utilizator | Data | 7 octombrie 2015 21:39:12 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.65 kb |
#include<stdio.h>
FILE *fin,*fout;
int a[6000001];
int n;
int maxl,maxs,maxp;
int ma(int a,int b)
{
if(a>b)
{
return a;
}
return b;
}
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]);
if(a[i-1]>0)
{
a[i]+=a[i-1];
}
if(a[i]>maxs)
{
maxs=a[i];
maxp=i;
}
}
for(int i=maxp;a[i]>0&&i>0;i--)
{
maxl++;
}
fprintf(fout,"%d %d %d",maxs,maxp-maxl+1,maxp);
}