社区讨论
0分求助
P14914「QFOI R3」航线交汇参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mjr9zgz2
- 此快照首次捕获于
- 2025/12/29 22:50 2 个月前
- 此快照最后确认于
- 2026/01/02 09:35 2 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define ld long double
#define F(i,x,y,z) for(ll i=x;i<=y;i+=z)
#define el "\n"
#define rkc ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
struct node{
ll s;
ll e;
ll h;
ll v;
};
int main(){
rkc;
ll n,d;
cin>>n>>d;
vector<node>a(11,{0,0,0,0});
cin>>a[0].s>>a[0].e>>a[0].h;
a[0].v=a[0].e-a[0].s;
F(i,1,10,1){
cin>>a[i].s>>a[i].e>>a[i].h;
a[i].v=a[i].e-a[i].s;
}
F(i,1,10,1){
node s1=a[i];
node s=a[0];
if(abs(s1.h-s.h)>d){
cout<<"No\n";
continue;
}
if(s1.v==s.v){
cout<<(s1.s==s.s?"Always":"No")<<"\n";
continue;
}
ld x=(1.0L*s.s*s1.v-1.0L*s1.s*s.v)/(1.0L*(s1.v-s.v));
ld s_min=min(1.0L*s.s,1.0L*s.e);
ld s_max=max(1.0L*s.s,1.0L*s.e);
ld s1_min=min(1.0L*s1.s,1.0L*s1.e);
ld s1_max=max(1.0L*s1.s,1.0L*s1.e);
bool in_s=(x>=s_min-1e-12)&&(x<=s_max+1e-12);
bool in_s1=(x>=s1_min-1e-12)&&(x<=s1_max+1e-12);
if(in_s&&in_s1){
printf("%.12Lf\n",x);
}else{
cout<<"No\n";
}
}
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...