結果
問題 | No.635 自然門松列 |
ユーザー |
![]() |
提出日時 | 2018-01-19 22:18:56 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,514 bytes |
コンパイル時間 | 1,360 ms |
コンパイル使用メモリ | 160,600 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-12-24 12:36:10 |
合計ジャッジ時間 | 2,242 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 19 WA * 4 |
ソースコード
#include<bits/stdc++.h>using namespace std;#define int long long#define rep(i,n) for(int i=0;i<(n);i++)#define pb push_back#define all(v) (v).begin(),(v).end()#define fi first#define se secondtypedef vector<int>vint;typedef pair<int,int>pint;typedef vector<pint>vpint;template<typename A,typename B>inline void chmin(A &a,B b){if(a>b)a=b;}template<typename A,typename B>inline void chmax(A &a,B b){if(a<b)a=b;}int gcd(int a,int b){return b?gcd(b,a%b):a;}pint calc(int x,int xx,int y,int yy){if(y==yy)return {0,1};if((y-yy)*(xx-x)<0)return {0,1};int d1=y-yy;int d2=xx-x;if(d1<0||d2<0){d1*=-1;d2*=-1;}int g=gcd(d1,d2);d1/=g;d2/=g;return {d2,d1};}signed main(){int N;cin>>N;while(N--){int x[3],y[3];rep(i,3)cin>>x[i];rep(i,3)cin>>y[i];if(y[0]==y[1]&&x[0]==x[1]){cout<<"NO"<<endl;continue;}if(y[2]==y[1]&&x[2]==x[1]){cout<<"NO"<<endl;continue;}if(max(x[0],x[2])<x[1]||min(x[0],x[2])>x[1]){cout<<"YES"<<endl;continue;}pint p1,p2;p1=calc(x[0],x[1],y[0],y[1]);p2=calc(x[2],x[1],y[2],y[1]);rep(i,3)x[i]+=y[i]*1001001001;if(max(x[0],x[2])<x[1]||min(x[0],x[2])>x[1]){cout<<"YES"<<endl;continue;}if(p1!=p2)cout<<"YES"<<endl;else cout<<"NO"<<endl;}return 0;}