数据范围
所有的数据不超过 1000。
题目描述
有 n 个小朋友去果园郊游,现在他们在玩一个比重量的游戏。他们规定在果园找苹果和西瓜这两种水果,然后统计出各自摘的苹果和西瓜的总重量,再根据n个总重量来排名,总重量高的排在前面(如果出现总重量相同就按苹果重的往前排)。现在请你输出排序后的结果。
输入格式
第一行一个整数 n,表示去果园郊游的小朋友人数。
接下来 n 行,每行两个数,表示苹果和西瓜重量。
输出格式
共 n 行,每行两个数,表示排序后的苹果和西瓜成绩。
样例数据
Input#1
4
2 2
1 4
3 1
2 1
Output#1
1 4
3 1
2 2
2 1
数据范围
所有的数据不超过 1000。
AC代码
#include <bits/stdc++.h>
using namespace std;
struct node
{
int p,w,h;
} a[305];
int n,x,y;
bool cmp(node x,node y)
{
if(x.h!=y.h)return x.h>y.h;
if(x.p!=y.p)return x.p>y.p;
}
int main()
{
cin>>n;
for(int i=1; i<=n; i++)
{
cin>>a[i].p>>a[i].w;
a[i].h=a[i].w+a[i].p;
}
sort(a+1,a+n+1,cmp);
for(int i=1; i<=n; i++)
{
cout<<a[i].p<<' '<<a[i].w<<endl;
}
return 0;
}
展示了如何用C++编写代码解决关于小朋友摘取苹果和西瓜重量排序的问题,涉及输入解析、结构体定义和自定义排序函数的使用。
1080





