Pagini recente » Cod sursa (job #239793) | Cei mai harnici utilizatori info-arena | Cod sursa (job #2426777) | Cod sursa (job #3299361) | Cod sursa (job #3297373)
#include <bits/stdc++.h>
using namespace std;
struct ssm {
int l;
int r;
long long sum;
};
ssm better( ssm a, ssm b ) {
if ( a.sum != b.sum ) {
if ( a.sum > b.sum ) return a;
return b;
}
if ( a.l != b.l ) {
if ( a.l < b.l ) return a;
return b;
}
if ( a.r < b.r ) return a;
return b;
}
int main() {
ifstream fin( "ssm.in" );
ofstream fout( "ssm.out" );
int n;
fin >> n;
long long sumPref = 0;
int smallI = 0;
long long sumI = 0;
ssm best = {1, 1, -(1LL << 33)};
for ( int i = 1, x; i <= n; i ++ ) {
fin >> x;
sumPref += x;
ssm cur = { smallI, i, sumPref - sumI };
best = better( best, cur );
if ( sumPref < sumI ) {
sumI = sumPref;
smallI = i;
}
}
fout << best.sum << ' ' << best.l << ' ' << best.r << '\n';
return 0;
}