Cod sursa(job #1061959)
Utilizator | Data | 20 decembrie 2013 15:29:27 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.58 kb |
#include<stdio.h>
int main()
{
FILE *fin,*fout;
fin=fopen("ssm.in","r");
fout=fopen("ssm.out","w");
int n;
fscanf(fin,"%d",&n);
int i,best=-999999999,s=0;
int pos1=0,pos2=0,first,last;
for(i=0;i<n;i++)
{
int x;
fscanf(fin,"%d",&x);
pos2=i;
s+=x;
if(s>best)
{
best=s;
first=pos1;
last=pos2;
}
if(s<0)
{
pos1=i+1;
s=0;
}
}
fprintf(fout,"%d %d %d",best,first+1,last+1);
return 0;
}