Cod sursa(job #1098071)
Utilizator | Data | 4 februarie 2014 13:40:50 | |
---|---|---|---|
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 fin("ssm.in");
ofstream fout("ssm.out");
int main() {
int N, best, nr;
fin >> N >> best;
int Sol = best;
int Start = 1, TestStart = 1;
int Finish = 1;
for (int i = 2; i <= N; ++i) {
fin >> nr;
if (best < 0) {
best = nr;
TestStart = i;
}else {
best += nr;
}
if (best > Sol) {
Sol = best;
Start = TestStart;
Finish = i;
}
}
fout << Sol << ' ' << Start << ' ' << Finish << '\n';
fin.close();
fout.close();
return 0;
}