Pagini recente » Borderou de evaluare (job #2510116) | Cod sursa (job #1061530) | Cod sursa (job #2843308)
#include <bits/stdc++.h>
using namespace std;
int v[6000005];
long long s[6000005];
long long best[6000005];
int main(){
ifstream cin("ssm.in");
ofstream cout("ssm.out");
int n;
cin >> n;
for(int i=1; i<=n; i++){
cin >> v[i];
s[i] = s[i-1] + v[i];
}
int di, dj;
s[0] = 0;
int minim = s[0];
pair<int, int> p;
p = {minim, 0};
int bestsum = INT_MIN;
for(int i=1; i<=n; i++){
best[i] = s[i] - minim;
if(minim>s[i]){
minim = s[i];
p = {minim, i};
}
if(bestsum < best[i]){
bestsum = best[i];
dj = i;
di = p.second + 1;
}
}
cout << bestsum << ' ' << di << ' ' << dj;
return 0;
}