Cod sursa(job #1247561)
| Utilizator | Data | 22 octombrie 2014 23:13:57 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <fstream>
using namespace std;
ifstream is("ssm.in");
ofstream os("ssm.out");
int n, a, d[6000001], b[6000001];
int dmax = -0x3f3f3f3f, bb, e;
int main()
{
is >> n;
for ( int i = 1; i <= n; ++i )
{
is >> a;
if ( d[i - 1] < 0 && i != 1 )
b[i] = i, d[i] = a;
else
b[i] = b[i - 1], d[i] = d[i - 1] + a;
if ( d[i] > dmax )
dmax = d[i], bb = b[i], e = i;
}
os << dmax << " " << bb << " " << e;
is.close();
os.close();
return 0;
}
