結果
| 問題 | No.2628 Shrinkage |
| コンテスト | |
| ユーザー |
kokosei
|
| 提出日時 | 2024-02-16 22:17:20 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,008 bytes |
| 記録 | |
| コンパイル時間 | 1,921 ms |
| コンパイル使用メモリ | 334,588 KB |
| 実行使用メモリ | 7,976 KB |
| 最終ジャッジ日時 | 2026-04-15 09:17:30 |
| 合計ジャッジ時間 | 2,915 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 1 WA * 27 |
コンパイルメッセージ
main.cpp: In function 'void solve()':
main.cpp:28:19: warning: C++20 says that these are ambiguous, even though the second is reversed:
28 | if(P[0] == Q[0] && P[1] == Q[1]){
| ^
main.cpp:7:10: note: candidate 1: 'bool point::operator==(const point&)'
7 | bool operator==(const point &a){
| ^~~~~~~~
main.cpp:7:10: note: candidate 2: 'bool point::operator==(const point&)' (reversed)
main.cpp:7:10: note: try making the operator a 'const' member function
main.cpp:28:35: warning: C++20 says that these are ambiguous, even though the second is reversed:
28 | if(P[0] == Q[0] && P[1] == Q[1]){
| ^
main.cpp:7:10: note: candidate 1: 'bool point::operator==(const point&)'
7 | bool operator==(const point &a){
| ^~~~~~~~
main.cpp:7:10: note: candidate 2: 'bool point::operator==(const point&)' (reversed)
main.cpp:7:10: note: try making the operator a 'const' member function
ソースコード
#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