Cod sursa(job #1625518)
| Utilizator | Data | 2 martie 2016 19:30:12 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
int v[6000003];
int main() {
int n;
in >> n;
for(int i = 1; i <= n; i++)
in >> v[i];
int sm = 0;
int lastI = 0;
int smMax = -int(2e9);
int smSt = 1;
int smDr = 1;
for(int i = 1; i <= n; i++) {
if(sm < 0) {
sm = v[i];
lastI = i;
} else
sm += v[i];
if(sm > smMax) {
smMax = sm;
smSt = lastI;
smDr = i;
}
}
out << smMax << " " << smSt << " " << smDr;
return 0;
}
