Cod sursa(job #1082031)
Utilizator | Data | 14 ianuarie 2014 02:26:33 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.69 kb |
#include <stdio.h>
#define N 100004
int main ()
{
FILE *fin=fopen("ssm.in","r");
FILE *fout=fopen("ssm.out","w");
int n;
fscanf(fin,"%d",&n);
long long int current=0, max=0;
int start=0, len=0, x;
int max_start, max_end;
for(int i=0;i<n;i++)
{
fscanf(fin,"%d",&x);
if(current>0)
{
current+=x;
}
else
{
current=x;
start=i;
}
if(current>max)
{
max=current;
max_end=i;
max_start=start;
}
printf("%d %d %d\n",i,current, max);
}
fprintf(fout,"%lld %d %d",max, max_start+1, max_end+1);
return 0;
}