Pagini recente » Cod sursa (job #273999) | Cod sursa (job #1705500) | Cod sursa (job #2651480) | Cod sursa (job #2243302) | Cod sursa (job #3208322)
#include <bits/stdc++.h>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
const int NMAX = 6e6+5;
long long n, v[NMAX], s[NMAX], maxi, inds, indf;
pair<int, int> smin[NMAX];
int main()
{
in>>n;
for (int i=1; i<=n; i++)
{
in>>v[i];
s[i]=s[i-1]+v[i];
if (s[i]<smin[i-1].first)
smin[i].first = s[i], smin[i].second = i;
else smin[i].first = smin[i-1].first, smin[i].second = smin[i-1].second;
//suma minima dintre sumele de la 1 la 2, 3, ..., i
if (s[i]-smin[i].first>maxi)
maxi = s[i]-smin[i].first, inds = smin[i].second+1, indf = i;
}
out<<maxi<<' '<<inds<<' '<<indf;
}