您的位置:首页 > 其它

结构体排序

2013-01-14 18:49 169 查看
#include<stdio.h>
#include<algorithm>
const int maxn=1100;
using namespace std;
struct card
{
int top;
int bottom;
}a[1020];
bool cmp(card x,card y)
{
if(x.bottom!=y.bottom)
return x.bottom>y.bottom;
else
return x.top>y.top;////
}
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&a[i].top,&a[i].bottom);
}
sort(a+1,a+n+1,cmp);
int i=1,sum=0,sum2=0,flag=0,first=1;
while(a[i].bottom>0)
{
sum+=a[i].bottom;
sum2+=a[i].top;
++i;
if(!first)
sum--;
if(first==1)
first=0;
if(i>n)
break;
}
int z=0;
if(i==1)
{
for(int j=1;j<=n;j++)
{
if(a[j].top>z)
z=a[j].top;
}
flag=1;
printf("%d",z);
}
while(sum--)
{
if(i>n)
break;
sum2+=a[i].top;
++i;
}
if(!flag)
printf("%d",sum2);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: