#include <bits/stdc++.h>
using namespace std;
int mx = -1, mn = 0, n;
pair<int, int> arr[101];
vector<bool> vst;
int go(int i, bool dir) {
  if (i < 0 || i >= n) return 0;
  int ans = 0;
  if (dir)
    for (int j = i; j <= mx; ++j) {
      if (!vst[j]) {
        vst[j] = true;
        return arr[j].second + go(j, !dir);
      }
    }
  else {
    for (int j = i; j >= mn; --j) {
      if (!vst[j]) {
        vst[j] = true;
        return arr[j].second + go(j, !dir);
      }
    }
  }
  return 0;
}
int main() {
  int ind, app, start = 0, t1, t2;
  cin >> n;
  vst.assign(n, false);
  for (int i = 0; i < n; ++i) {
    scanf("%d%d", &ind, &app);
    if (ind <= 0) start++;
    arr[i] = make_pair(ind, app);
  }
  mx = n - 1;
  sort(arr, arr + n);
  if (arr[start].first == 0) {
    t1 = go(start - 1, 0);
    vst.assign(n, false);
    t2 = go(start + 1, 1);
  } else {
    t1 = go(start - 1, 0);
    vst.assign(n, false);
    t2 = go(start, 1);
  }
  int res = max(t1, t2);
  cout << res;
}
