题单:精挑细选
题目描述
小王是公司的仓库管理员,一天,他接到了这样一个任务:从仓库中找出一根钢管。这听起来不算什么,但是这根钢管的要求可真是让他犯难了,要求如下:
1.1. 这根钢管一定要是仓库中最长的;
2.2. 这根钢管一定要是最长的钢管中最细的;
3.3. 这根钢管一定要是符合前两条的钢管中编码最大的(每根钢管都有一个互不相同的编码,越大表示生产日期越近)。
相关的资料到是有,可是,手工从几百份钢管材料中选出符合要求的那根……
要不,还是请你编写个程序来帮他解决这个问题吧。
输入格式
第一行一个整数 N(1≤N≤1000)N(1≤N≤1000) ,表示仓库中所有钢管的数量。
之后 NN 行,每行 33 个整数,分别表示一根钢管的长度(以毫米为单位,不超过 1000010000 )、直径(以毫米为单位,不超过 100100 )和编码(一个 99 位整数)。
输出格式
只有一个 99 位整数,表示选出的那根钢管的编码。
样例 #1
样例输入 #1
4
3000 50 872198442
3000 45 752498124
2000 60 765128742
3000 45 652278122
样例输出 #1
752498124
提示
答案
#include<bits/stdc++.h>
using namespace std;
struct node{
int cd;
int cx;
int bm;
}a[1005];
int n;
bool cmp(node x,node y)
{
return x.cd>y.cd||x.cd==y.cd&&x.cx<y.cx||x.cd==y.cd&&x.cx==y.cx&&x.bm>y.bm;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].cd>>a[i].cx>>a[i].bm;
}
sort(a+1,a+n+1,cmp);
cout<<a[1].bm;
return 0;
}