#include<cstdlib> #include<iostream> #include<sstream> #include<cstdio> #include<cmath> #include<cstring> #include <algorithm> #include<vector> #include<set> #include<queue> #define LL long long #define inf 0x7fffffff #define E 1e-9 #define M 100 #define N 10005 using namespace std; int n,p[N],d[N],sub[N]; bool cmp(int i,int j) { return d[i]<d[j]; } int main() { #ifndef ONLINE_JUDGE freopen("ex.in","r",stdin); #endif while(scanf("%d",&n)!=EOF) { if(!n) { printf("0\n"); continue; } for(int i=0; i<n; i++) sub[i]=i; for (int i=0; i<n; i++) { scanf("%d%d",&p[i],&d[i]); } sort(sub,sub+n,cmp); priority_queue<int,vector<int>,less<int> > q; int pre=d[sub[n-1]]; int sum=0; for(int i=n-1; i>=0; i--) { int j=sub[i]; if(d[j]==pre) { q.push(p[j]); } else { int k=0; while(!q.empty()&&k<pre-d[j]) { sum+=q.top(); q.pop(); k++; } pre=d[j]; q.push(p[j]); } } int k=0; while(!q.empty()&&k<pre-0) { sum+=q.top(); q.pop(); k++; } printf("%d\n",sum); } return 0; }