#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
struct data
{
int x;
int a;
};
data l[1024],r[1024];
bool c1(data q,data p)
{
return q.x<p.x;
}
bool c2(data q,data p)
{
return q.x>p.x;
}
int main()
{
int n,i,t,p,ans1,ans2,p1,p2;
while(~scanf("%d\n",&n))
{
p1=p2=0;
for(i=0;i<n;i++)
{
scanf("%d%d",&t,&p);
if(t>0)
{
r[p2].x=t;
r[p2].a=p;
p2++;
}
else
{
l[p1].x=t;
l[p1].a=p;
p1++;
}
}
sort(l,l+p1,c2);
sort(r,r+p2,c1);
int u1[1024],u2[1024];
memset(u1,0,sizeof(u1));
memset(u2,0,sizeof(u2));
for(ans1=0,i=0;;i++)
{
if(i%2==0)
{
if(i/2>=p1) break;
ans1+=l[i/2].a;
}
else
{
if(i/2>=p2) break;
ans1+=r[i/2].a;
}
}
for(ans2=0,i=0;;i++)
{
if(i%2==1)
{
if(i/2>=p1) break;
ans2+=l[i/2].a;
}
else
{
if(i/2>=p2) break;
ans2+=r[i/2].a;
}
}
printf("%d\n",max(ans1,ans2));
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-11 22:46:02