Pagini recente » Cod sursa (job #1072600) | Cod sursa (job #1670091) | Cod sursa (job #2087641) | Cod sursa (job #3211943) | Cod sursa (job #1292376)
#include <bits/stdc++.h>
using namespace std;
int main() {
ifstream in("ssm.in");
ofstream out("ssm.out");
int N;
in >> N;
vector <int> v(N + 1, 0);
for (int i = 1; i <= N; ++i) {
in >> v[i];
}
vector <int> s = v;
for (int i = 1; i <= N; ++i) {
s[i] = s[i] + s[i - 1];
}
vector <int> d(N + 1, 0);
int mn = 0;
for (int i = 1; i <= N; ++i) {
d[i] = s[i] - mn;
mn = min(mn, s[i]);
}
int mx = - (1 << 30);
int mx_pos = N + 1;
for (int i = N; i > 0; --i) {
if (d[i] >= mx) {
mx = d[i];
mx_pos = i;
}
}
vector <int> res;
int start = mx_pos - 1;
while (s[mx_pos] - s[start] != mx) {
--start;
}
out << d[mx_pos] << " " << start + 1 << " " << mx_pos << "\n";
in.close();
out.close();
return 0;
}