Cod sursa(job #800826)
Utilizator | gicamarin gigi1996 | Data | 22 octombrie 2012 19:18:46 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 5 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include<fstream>
#define NMAX 6000001
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int n,a[NMAX],sum[NMAX],best[NMAX],bestSum=-20000000,i,k,start,end;
int main()
{f>>n;
sum[0]=0;
for( i=1; i<=n; ++i) {f>>a[i]; sum[i]=a[i]+sum[i-1];}
int min=sum[0];
for( i=1; i<=n; ++i)
{
best[i]=sum[i]-min;
if(min > sum[i]) min=sum[i],k=i;
if(bestSum < best[i]) bestSum=best[i],start=k,end=i;
}
g<<bestSum<<" "<<start<<" "<<end<<" ";
return 0;
}