Cod sursa(job #673787)
Utilizator | cius catalin ciuscatalin | Data | 4 februarie 2012 21:18:59 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
#include<fstream>
using namespace std;
ifstream cin("ssm.in");
ofstream cout("ssm.out");
int a[7000005], S[7000005], n;
int main()
{
int bestSum = -int(2e9), min = 0, idx, beg, end, i;
cin>>n;
for(i=1;i<=n;i++)
cin>>S[i];
for(i=1;i<=n;i++)
{ S[i]=S[i]+S[i-1];
if (bestSum < S[i] - min)
bestSum = S[i] - min, beg = idx + 1, end = i;
if (min > S[i])
min = S[i], idx = i;
}
cout << bestSum << " " << beg << " " << end;
return 0;
}