Cod sursa(job #3209473)
Utilizator | Data | 2 martie 2024 15:39:07 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 85 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.65 kb |
#include <bits/stdc++.h>
#define NMAX 6000000
int dp[NMAX];
int main()
{
int n, start = 0, end = 0;
int min, sum = 0;
std::ifstream fin("ssm.in");
std::ofstream fout("ssm.out");
fin >> n;
fin >> dp[0];
min = dp[0];
start = 0;
for (int i = 1; i < n; ++i) {
fin >> dp[i];
dp[i] += dp[i - 1];
if (dp[i] < min) {
min = dp[i];
start = i;
end = i;
} else if (dp[i] - min > sum) {
sum = dp[i] - min;
end = i;
}
}
fout << sum << ' ' << start + 2 << ' ' << end + 1;
fin.close();
fout.close();
return 0;
}