Pagini recente » Cod sursa (job #1536901) | Cod sursa (job #244407) | Florian Marcu | Cod sursa (job #2594748) | Cod sursa (job #2942896)
// https://www.infoarena.ro/problema/ssm
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int main() {
int n;
fin>>n;
pair<int, pair<int,int>> maxi{};
vector<int> dp(n), left(n);
fin>>dp[0];
for (int i=1; i<n; ++i) {
fin>>dp[i];
if (dp[i-1]+dp[i]>dp[i]) {
dp[i] += dp[i-1];
left[i] = left[i-1];
} else left[i] = i;
if (dp[i]>maxi.first || (dp[i] == maxi.first && (left[i]<maxi.second.first || (left[i] == maxi.second.first && i<maxi.second.second)))) maxi = {dp[i], {left[i], i}};
}
fout<<maxi.first<<" "<<maxi.second.first+1<<" "<<maxi.second.second+1;
}