Pagini recente » Cod sursa (job #1372046) | Cod sursa (job #3316910) | Cod sursa (job #2038510) | Cod sursa (job #1086330) | Cod sursa (job #3322878)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int n, x, c, v[200000], st, stmax, drmax, stmin, drmin;
long long s, smax, smin = 2000000000, sum;
int main() {
fin >> n;
for(int i = 1; i <= n; i++) {
fin >> x >> c;
if(c == 1)
v[i] = x;
else
v[i] = -x;
sum += v[i];
}
s = v[1];
for (int i = 2; i <= n; i++) {
if (v[i] > s + v[i]) {
s = v[i];
st = i;
}
else
s = s + v[i];
if (s > smax) {
smax = s;
stmax = st;
drmax = i;
}
}
s = v[1];
for (int i = 2; i <= n; i++) {
if (v[i] < s + v[i]) {
s = v[i];
st = i;
}
else
s = s + v[i];
if (s < smin) {
smin = s;
stmin = st;
drmin = i;
}
}
if(smax > sum - smin)
fout << smax << ' ' << stmax << ' ' << drmax - stmax + 1;
else
fout << sum - smin << ' ' << drmin + 1 << ' ' << (n - drmin) + (stmin - 1);
return 0;
}