#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;         }       }     }   }   