#include <bits/stdc++.h>
using namespace std;
struct no {
  no *l, *r;
  long long s;
  int cnt;
  no() : l(nullptr), r(nullptr), s(0), cnt(0) {}
};
typedef no *noptr;
inline int getcnt(const noptr &n) { return n ? n->cnt : 0; }
inline long long gets(const noptr &n) { return n ? n->s : 0; }
void insert(noptr &n, int val, int beg = 0, int end = 1e9) {
  if (!n) n = new no();
  if (beg == end) return n->s += val, n->cnt = (n->s ? 1 : 0), void();
  int mid = (beg + end) >> 1;
  if (abs(val) <= mid)
    insert(n->l, val, beg, mid);
  else
    insert(n->r, val, mid + 1, end);
  n->s = gets(n->l) + gets(n->r);
  n->cnt = getcnt(n->l) + getcnt(n->r);
}
long long get(const noptr &n, int k) {
  if (!n) return 0;
  if (getcnt(n->r) > k) return get(n->r, k);
  return gets(n->r) + get(n->l, k - getcnt(n->r));
}
void clear(noptr &n) {
  if (!n) return;
  if (n->l) clear(n->l);
  if (n->r) clear(n->r);
  delete n;
  n = nullptr;
}
int n;
long long allsum = 0;
set<int> lightspells;
int main() {
  noptr seg = nullptr;
  for (scanf("%d", &n); n--;) {
    int t, d;
    scanf("%d %d", &t, &d);
    allsum += d;
    insert(seg, d);
    if (t) {
      if (d > 0)
        lightspells.insert(d);
      else
        lightspells.erase(-d);
    }
    if (!lightspells.size())
      printf("%lld\n", allsum);
    else {
      int mnl = *lightspells.begin();
      long long ans = allsum;
      insert(seg, -mnl);
      ans += get(seg, lightspells.size());
      insert(seg, mnl);
      printf("%lld\n", ans);
    }
  }
  clear(seg);
}
