Cod sursa(job #2155561)
| Utilizator | Data | 7 martie 2018 22:22:02 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include <fstream>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int n, i, j, x, s, t, st, dr, ma, mi = (1 << 30) - 1;
int main()
{
fin >> n;
for ( i = 0; i < n; ++i )
{
fin >> x;
s += x;
t = s - mi;
if ( t < 0 )
{
mi = s;
j = i + 1;
}
else
{
if ( t > ma )
{
ma = t;
st = j, dr = i;
}
else if ( s == ma && i - j < dr - st )
st = j, dr = i;
}
}
fout << ma << " " << st + 1 << " " << dr + 1;
}
