Cod sursa(job #718938)
| Utilizator | Data | 21 martie 2012 11:27:27 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 40 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include<fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
const int MAXN = 100005;
int main()
{
int n, S[MAXN];
unsigned i;
f>>n;
for(i=1;i<=n;i++)
f>>S[i];
int bestSum = -1, min = 0, idx, beg, end;
for(i=1;i<=n;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;
}
g<<bestSum<<' '<<beg<<' '<<end;
f.close();
g.close();
return 0;
}