Cod sursa(job #2639707)
| Utilizator | Data | 3 august 2020 15:56:18 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 1.12 kb |
using namespace std;
#include<bits/stdc++.h>
int n, s[6000001];
long long bestSum, sum;
int st, dr, idx;
int main() {
ifstream fin("ssm.in");
ofstream fout("ssm.out");
fin >> n;
for (int i = 1; i<=n; i++) {
fin >> s[i];
}
for (int i = 1; i<=n; i++) {
if (sum < 0) {
sum = s[i];
idx = i;
} else {
sum += s[i];
if (bestSum < sum) {
bestSum = sum;
st = idx;
dr = i;
} else if (bestSum == sum) {
if (idx < st) {
bestSum = sum;
st = idx;
dr = i;
} else if (idx == st) {
if (i < dr) {
bestSum = sum;
st = idx;
dr = i;
}
}
}
}
}
if (st == 0) {
st = 1;
}
fout << bestSum << " " << st << " " << dr;
fin.close();
fout.close();
return 0;
}
