Pagini recente » Cod sursa (job #1335309) | Cod sursa (job #2895085) | Cod sursa (job #2399090) | Cod sursa (job #1745605) | Cod sursa (job #2983493)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
const int MAX_LENGTH = 6000000;
const int MAXIM = 5000000000;
int n, v[MAX_LENGTH + 1], sp[MAX_LENGTH + 1];
int main() {
fin >> n;
for (int i = 1; i <= n; ++i) {
fin >> v[i];
}
long long maxim = -MAXIM, minim = MAXIM, max_dif = -MAXIM, idx;
int max_pos = 0, min_pos = 0;
for (int i = 1; i <= n; ++i) {
sp[i] = sp[i - 1] + v[i];
}
for (int i = 0; i <= n; ++i) {
if (sp[i] < minim) {
minim = sp[i];
idx = i;
}
if (sp[i] - minim > max_dif) {
max_dif = sp[i] - minim;
max_pos = i;
min_pos = idx + 1;
}
}
fout << sp[max_pos] - sp[min_pos - 1] << " " << min_pos << " " << max_pos;
return 0;
}