Pagini recente » Cod sursa (job #1394602) | Cod sursa (job #2948382) | Cod sursa (job #1890011) | Cod sursa (job #177297) | Cod sursa (job #3259083)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int main() {
long long n;
fin >> n;
vector<long long> v(n + 1), dp(n + 1);
for (int i = 1; i <= n; i++) {
fin >> v[i];
}
long long maxi = v[1];
int start = 1, end = 1, tempStart = 1;
dp[1] = v[1]; // Inițializare pentru primul element
for (int i = 2; i <= n; i++) {
if (dp[i - 1] + v[i] > v[i]) {
dp[i] = dp[i - 1] + v[i];
} else {
dp[i] = v[i];
tempStart = i; // Începem o nouă subsecvență
}
if (dp[i] > maxi) {
maxi = dp[i];
start = tempStart;
end = i;
}
}
fout << maxi << ' ' << start << ' ' << end;
return 0;
}