#include <bits/stdc++.h>
using namespace std;
set<long long> f, l, s;
long long sf = 0, sl = 0;
long long ksum = 0, cnt = 0, kmin = 0;
void update(long long b, long long t) {
  int c = l.size();
  if (t == 1)
    s.insert(b);
  else
    s.erase(b);
  if (c == 1 && cnt == 0) {
    ksum = kmin = *s.rbegin();
    cnt = 1;
    return;
  }
  if (c > cnt) {
    if (b > kmin) {
      ksum += b;
    } else {
      kmin = *(--s.find(kmin));
      ksum += kmin;
    }
    cnt++;
  } else if (c < cnt) {
    ksum -= max(b, kmin);
    if (b <= kmin) {
      kmin = *s.upper_bound(kmin);
    }
    cnt--;
  } else {
    if (c == 0) return;
    if (b >= kmin) {
      if (t == 1) {
        ksum += b - kmin;
        kmin = *s.upper_bound(kmin);
      } else {
        kmin = *(--s.lower_bound(kmin));
        ksum -= b - kmin;
      }
    }
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  while (n--) {
    long long a, b;
    cin >> a >> b;
    if (a == 0) {
      if (b < 0) {
        f.erase(f.find(-b));
      } else {
        f.insert(b);
      }
      sf += b;
    } else {
      if (b < 0) {
        l.erase(l.find(-b));
      } else {
        l.insert(b);
      }
      sl += b;
    }
    if (b < 0)
      update(-b, -1);
    else
      update(b, 1);
    if (l.size() == 0) {
      cout << sf << endl;
    } else if (f.size() == 0) {
      cout << 2 * sl - *l.begin() << endl;
    } else {
      if (*f.rbegin() > *l.begin()) {
        cout << sf + sl + ksum << endl;
      } else {
        cout << sf + 2 * sl - *l.begin() + *f.rbegin() << endl;
      }
    }
  }
}
