結果
| 問題 |
No.635 自然門松列
|
| コンテスト | |
| ユーザー |
beet
|
| 提出日時 | 2018-01-19 21:55:59 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,956 bytes |
| コンパイル時間 | 1,473 ms |
| コンパイル使用メモリ | 163,580 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-12-24 12:30:55 |
| 合計ジャッジ時間 | 2,102 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 19 WA * 3 RE * 1 |
ソースコード
#include<bits/stdc++.h>
using namespace std;
using Int = long long;
signed main(){
Int n;
cin>>n;
while(n--){
vector<double> x(3),y(3);
for(Int i=0;i<3;i++) cin>>x[i];
for(Int i=0;i<3;i++) cin>>y[i];
if(x[0]<x[1]&&x[1]>x[2]){
cout<<"YES"<<endl;
continue;
}
if(x[0]>x[1]&&x[1]<x[2]){
cout<<"YES"<<endl;
continue;
}
//*//
if((y[0]<y[1]||(x[0]<x[1]&&y[0]==y[1]))&&
(y[2]<y[1]||(x[2]<x[1]&&y[2]==y[1]))){
cout<<"YES"<<endl;
continue;
}
//*//
if((y[0]>y[1]||(x[0]>x[1]&&y[0]==y[1]))&&
(y[2]>y[1]||(x[2]>x[1]&&y[2]==y[1]))){
cout<<"YES"<<endl;
continue;
}
//*/
double a=-1;
if(x[0]<=x[1]&&y[0]>y[1]){
if(x[0]==x[1]) a=0;
else{
double l=0,r=1e18;
for(Int i=0;i<200;i++){
double m=(l+r)/2;
if(x[0]+y[0]*m>x[1]+y[1]*m) r=m;
else l=m;
}
a=r;
}
}
if(x[0]>=x[1]&&y[0]<y[1]){
if(x[0]==x[1]) a=0;
else{
double l=0,r=1e18;
for(Int i=0;i<200;i++){
double m=(l+r)/2;
if(x[0]+y[0]*m<x[1]+y[1]*m) r=m;
else l=m;
}
a=r;
}
}
double b=-1;
if(x[2]<=x[1]&&y[2]>y[1]){
if(x[2]==x[1]) b=0;
else{
double l=0,r=1e18;
for(Int i=0;i<200;i++){
double m=(l+r)/2;
if(x[2]+y[2]*m>x[1]+y[1]*m) r=m;
else l=m;
}
b=r;
}
}
if(x[2]>=x[1]&&y[2]<y[1]){
if(x[2]==x[1]) b=0;
else{
double l=0,r=1e18;
for(Int i=0;i<200;i++){
double m=(l+r)/2;
if(x[2]+y[2]*m<x[1]+y[1]*m) r=m;
else l=m;
}
b=r;
}
}
if(a<0||b<0){
cout<<"NO"<<endl;
continue;
}
//cout<<x[0]<<" "<<x[1]<<" "<<x[2]<<":"<<a<<" "<<b<<endl;
if(x[0]<=x[1]){
assert(x[1]<=x[2]);
if(abs(a-b)>1e-9){
cout<<"YES"<<endl;
continue;
}
}
if(x[0]>=x[1]){
assert(x[1]>=x[2]);
if(abs(a-b)>1e-9){
cout<<"YES"<<endl;
continue;
}
}
cout<<"NO"<<endl;
}
return 0;
}
beet