您的位置:首页 > 移动开发

cf 558A Lala Land and Apple Trees

2015-07-22 21:09 405 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: