結果
| 問題 |
No.2628 Shrinkage
|
| コンテスト | |
| ユーザー |
kokosei
|
| 提出日時 | 2024-02-16 22:17:20 |
| 言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,008 bytes |
| コンパイル時間 | 2,630 ms |
| コンパイル使用メモリ | 245,520 KB |
| 実行使用メモリ | 6,824 KB |
| 最終ジャッジ日時 | 2024-09-28 20:53:28 |
| 合計ジャッジ時間 | 3,379 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 1 WA * 27 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
struct point{
ll x, y;
bool operator==(const point &a){
return (x == a.x) && (y == a.y);
}
};
point P[2];
point Q[2];
ll dist(point a, point b){
return (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y);
}
bool heikou(){
point p = {P[0].x - P[1].x, P[0].y - P[1].y};
point q = {Q[0].x - Q[1].x, Q[0].y - Q[1].y};
if(p.x == 0 && q.x == 0)return p.y * q.y > 0;
if(p.y == 0 && q.y == 0)return p.x * q.x > 0;
return (p.x * q.y == p.y * q.x);
}
void solve(){
cin >> P[0].x >> P[0].y;
cin >> P[1].x >> P[1].y;
cin >> Q[0].x >> Q[0].y;
cin >> Q[1].x >> Q[1].y;
if(P[0] == Q[0] && P[1] == Q[1]){
cout << "Yes\n";
return;
}
bool f = (dist(P[0], P[1]) > dist(Q[0], Q[1])) && heikou();
cout << (f ? "Yes\n" : "No\n");
}
int main(void){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t; cin >> t;
while(t--)solve();
return 0;
}
kokosei