Cod sursa(job #357527)
| Utilizator | Data | 19 octombrie 2009 18:42:34 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include<fstream>
#include<vector>
#include<algorithm>
#define NRS 6000000
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n, s[NRS], a[NRS],i, sum, maxs = -9999999, j;
int main()
{
fin >> n;
for ( i = 1; i <= n; ++i )
{
fin >> a[i];
s[i] = max(s[i-1]+a[i], a[i] );
if ( s[i] > maxs )
maxs = s[i], j = i;
}
i= j;
for ( sum = 0; sum != maxs; --i )
sum += a[i];
fout << maxs << ' ' << i+1 << ' ' << j;
fin.close();
fout.close();
return 0;
}