#include <bits/stdc++.h>
using namespace std;
void solve() {
  int n;
  cin >> n;
  priority_queue<int> q[3];
  long long ans = 0;
  int ex = 0;
  for (int i = 0; i < n; i++) {
    string s;
    int k;
    cin >> s >> k;
    if (s.compare("00") == 0)
      q[0].push(k);
    else if (s.compare("01") == 0)
      q[1].push(k);
    else if (s.compare("10") == 0)
      q[2].push(k);
    else {
      ex++;
      ans += k;
    }
  }
  while (!q[1].empty() && !q[2].empty()) {
    ans += q[1].top();
    ans += q[2].top();
    q[1].pop();
    q[2].pop();
  }
  auto &qq = q[1].empty() ? q[2] : q[1];
  while ((!qq.empty() || !q[0].empty()) && ex--) {
    if (q[0].empty()) {
      ans += qq.top();
      qq.pop();
    } else if (qq.empty()) {
      ans += q[0].top();
      q[0].pop();
    } else {
      if (qq.top() > q[0].top()) {
        ans += qq.top();
        qq.pop();
      } else {
        ans += q[0].top();
        q[0].pop();
      }
    }
  }
  cout << ans << "\n";
}
int main() {
  int t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
