#include <bits/stdc++.h>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int n;
int a[200001];
int dp, dp1;
int startPos, curLen;
int Max = INT_MIN, startMax, lenMax;
int Min = INT_MAX, startMin, lenMin;
int sumTotal;
int main() {
fin>>n;
for(int i = 1; i <= n; i++){
int x, b;
fin>>x>>b;
if(b)
a[i] = x;
else
a[i] = -x;
sumTotal += a[i];
}
startPos = 1, curLen = 1;
for(int i = 1; i <= n ; i++){
if(a[i] < dp1 + a[i]){
dp = dp1 + a[i];
curLen++;
}
else {
dp = a[i];
startPos = i;
curLen = 1;
}
if(Max < dp){
Max = dp;
startMax = startPos;
lenMax = curLen;
}
dp1 = dp;
}
dp = 0, dp1 = 0;
for(int i = 1; i <= n ; i++){
if(a[i] > dp1 + a[i]){
dp = dp1 + a[i];
curLen++;
}
else {
dp = a[i];
startPos = i;
curLen = 1;
}
if(Min > dp){
Min = dp;
startMin = startPos;
lenMin = curLen;
}
dp1 = dp;
}
if(Max >= sumTotal - Min)
fout<<Max<<" "<<startMax<<" "<<lenMax;
else
fout<<sumTotal - Min<<" "<<startMin + lenMin<<" "<<n-lenMin;
return 0;
}