Cod sursa(job #663236)
Utilizator | Data | 18 ianuarie 2012 08:46:51 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <fstream>
#define l 6000005
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int v[l],a[l],n,i,pozf,MAX=-1*l,sum;
int main() {
f >> n;
for (i = 1;i <= n;i++) {
f >> a[i];
v[i] = a[i];
}
for (i = 1;i <= n;i++) {
v[i] = max(v[i], v[i] + v[i-1]);
if (v[i] > MAX) MAX = v[i], pozf = i;
}
for (i = pozf;sum + a[i] != v[pozf];sum += a[i],i--);
g << MAX<< " " << i <<" "<< pozf;
f.close();
g.close();
return 0;
}