Cod sursa(job #3271673)
Utilizator | Data | 26 ianuarie 2025 20:48:26 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 85 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.6 kb |
#include <fstream>
#include <vector>
#include <climits>
using namespace std;
fstream cin("ssm.in");
ofstream cout("ssm.out");
int n;
vector<int> v;
int main() {
cin >> n;
for (int i = 1; i <= n; ++i) {
int a;
cin >> a;
v.push_back(a);
}
int st, dr;
long long Smax = LONG_LONG_MIN, s = -1;
for (int i = 0; i < v.size(); ++i) {
if (s < 0) {
st = i;
s = 0;
}
s += v[i];
if (s > Smax) {
Smax = s;
dr = i;
}
}
cout << Smax << ' ' << st + 1 << ' ' << dr + 1;
return 0;
}