Cod sursa(job #1249456)
Utilizator | Data | 26 octombrie 2014 23:36:06 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.6 kb |
#include <fstream>
#define oo (1 << 30)
using namespace std;
int main() {
int i, a, x, best, start, end, sum, N;
ifstream in("ssm.in");
ofstream out("ssm.out");
in >> N;
start = 0;
end = 0;
best = -oo;
sum = 0;
for(i = 1; i <= N; i++) {
in >> x;
if(sum < 0)
sum = x, a = i;
else
sum += x;
if(best < sum)
best = sum, start = a, end = i;
}
out << best << ' ' << start << ' ' << end << '\n';
in.close();
out.close();
return 0;
}