Cod sursa(job #897816)
| Utilizator | Data | 27 februarie 2013 22:24:55 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.49 kb |
#include <fstream>
using namespace std;
int main()
{
ifstream in("ssm.in");
ofstream out("ssm.out");
int n, v, l, r, sum, max_sum, max_l, max_r;
in>>n;
in>>v;
l = r = max_l = max_r = 0;
sum = max_sum = v;
for (int i = 1; i < n; i++) {
in>>v;
if (sum >= 0) {
sum += v;
r = i;
} else {
sum = v;
l = r = i;
}
if (sum > max_sum) {
max_sum = sum;
max_l = l;
max_r = r;
}
}
out<<max_sum<<" "<<max_l + 1<<" "<<max_r + 1;
return 0;
}