题意
有一场举重比赛,每个选手有两个数据,一个 s i si si表示力量值,另一个
e i ei ei表示耐力。比赛时,举办方选出一个w,的让每个选手都去尝试举重。
当 s i < w si<w si<w时,他不能举起来,得分为0.
当 s i > = w si>=w si>=w时,他能举起来 e i ei ei次,得分为 e i ei ei.
最后得分最大的人获胜,如果有多个,则无人获胜。
你的朋友是1号选手,你作为一个诚实的裁判,你想帮助你的朋友获胜,请你找出那个 w w w,使得你的朋友能够获胜,若不能,输出-1.
样例输入
3
4
7 4
9 3
4 6
2 2
2
4 6
100 100
2
1337 3
1337 3
样例输出
5
-1
-1
算法
这道题简单的不能再简单了,简单地分析样例后就可以得出结论,只要有一位选手的 s i , e i ≥ s 0 , e 0 si,ei≥s0,e0 si,ei≥s0,e0,就不能获胜,反之,直接输出 s 0 s0 s0即可。
代码实现
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
int t;
cin>>t;
while(t--){
int n;
cin>>n;
int a,b;
cin>>a>>b;
bool flag=1;
for(int i=1;i<n;i++){
int x,y;
cin>>x>>y;
if(x>=a&&y>=b) flag=0;
}
if(flag){
cout<<a<<endl;
}
else{
cout<<-1<<endl;
}
}
return 0;
}