Pagini recente » Cod sursa (job #1424527) | Cod sursa (job #2776002) | Cod sursa (job #3174885) | Cod sursa (job #1446365) | Cod sursa (job #1492149)
#include <iostream>
#include <fstream>
using namespace std;
int main(){
ifstream f("buline.in");
ofstream g("buline.out");
int n, s, i, l, smax, lmax, imax, x;
int v[200005];
f >> n;
f >> v[1] >> x;
if (x == 0)
v[1] *= (-1);
smax = s = v[1];
l = i = imax = lmax = 1;
for (int j = 2; j <= n; ++j){
f >> v[j] >> x;
if (x == 0)
v[j] *= (-1);
if (s < 0){
s = v[j];
i = j;
l = 1;
}
else{
s += v[j];
l++;
}
if (s > smax){
smax = s;
imax = i;
lmax = l;
}
}
int smin, lmin, imin, st;
smin = s = st = v[1];
l = i = lmin = imin = 1;
for (int j = 2; j <= n; ++j){
st += v[j];
if (s > 0){
s = v[j];
i = j;
l = 1;
}
else{
s += v[j];
l++;
}
if (s < smin){
smin = s;
imin = i;
lmin = l;
}
}
if (smax>=st - smin)
g << smax << " " << imax << " " << lmax;
else
g << st - smin << " " << imin + lmin << " " << n - lmin;
f.close();
g.close();
return 0;
}