Description
进了古墓之后,小队又遭遇到了重重机关,但都一一化险为夷。直到在一条密道中行走的时候,somebody碰到了某个机关,瞬间密道开始坍塌,大家必须马上离开密道。由于先前已经破译出地图,现在已经得知了各个门离他们位置的距离。不幸的是之前还得知了这种门一旦第一个人通过就会开始闭合,并且每个门闭合时间可能不同。幸运的是你已经得到了这些门闭合的具体时间和队伍中跑得最快和最慢的人的速度。由于某些原因,你们必须集体行动;又由于某些原因,密道中你们一旦开始跑就不能停下;还由于某些原因,只有你能算出最好的逃生之门,一切的重担都落在了你的身上。
Input
输入第一行为一个整数n(0<n<=100),代表有n个门。其后有n行,每行有两个整数,第一个是门离你们队伍的距离,第二个是门闭合所需要的时间。最后有一行有两个整数,分别队伍中的最慢速度和最快速度。
Output
如果有多个门可以逃生,输出到距离最小的能逃生的门的最慢的人所需要的时间(保留两位小数);若没有能成功逃生的门,输出”let_s_die_together”(输出不用加双引号);
#include <bits/stdc++.h>
using namespace std;
struct door{
int lenth;
int time;
};
bool cmp(door arrcmp1,door arrcmp2){
return arrcmp1.lenth < arrcmp2.lenth;
}
int main(){
int n,fast,slow;
float x,y;
cin>>n;
vector<door> arr(n);
for(int i=0;i<n;i++){
cin>>arr[i].lenth>>arr[i].time;
}
cin>>slow>>fast;
vector<door> arr2;
for(int i=0;i<n;i++){
x=1.0*arr[i].lenth/slow;
y=1.0*arr[i].lenth/fast;
if((x-y)<arr[i].time){
arr2.push_back(arr[i]);
}
}
if(arr2.empty()){
cout<<"let_s_die_together"<<'\n';
}
else {
sort(arr2.begin(),arr2.end(),cmp);
x=1.0*arr2[0].lenth/slow;
printf("%.2f\n", x);
}
return 0;
}