#include <bits/stdc++.h>
using namespace std;
long long int n;
string s;
long long int m;
vector<long long int> v[4];
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    cin >> s;
    scanf("%d", &m);
    if (s == "00") {
      v[0].push_back(m);
    } else if (s == "01") {
      v[1].push_back(m);
    } else if (s == "10") {
      v[2].push_back(m);
    } else {
      v[3].push_back(m);
    }
  }
  long long int ans = min(v[1].size(), v[2].size());
  sort(v[1].begin(), v[1].end());
  sort(v[2].begin(), v[2].end());
  long long int sum = 0;
  for (int i = 0; i < ans; i++) {
    long long int len = v[1].size();
    long long int len1 = v[2].size();
    sum += v[1][len - 1];
    sum += v[2][len1 - 1];
    v[1].pop_back();
    v[2].pop_back();
  }
  long long int cnt = v[3].size();
  for (int i = 0; i < cnt; i++) {
    long long int len = v[3].size();
    sum += v[3][len - 1];
    v[3].pop_back();
  }
  if (v[1].size()) {
    for (int i = 0; i < v[1].size(); i++) {
      v[0].push_back(v[1][i]);
    }
  } else {
    for (int i = 0; i < v[2].size(); i++) {
      v[0].push_back(v[2][i]);
    }
  }
  sort(v[0].begin(), v[0].end());
  for (int i = v[0].size() - 1; i >= (v[0].size() - cnt) && i >= 0; i--) {
    sum += v[0][i];
  }
  cout << sum << endl;
  return 0;
}
