結果
問題 | No.2564 衝突予測 |
ユーザー |
![]() |
提出日時 | 2023-12-02 16:35:14 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 68 ms / 2,000 ms |
コード長 | 2,431 bytes |
コンパイル時間 | 2,087 ms |
コンパイル使用メモリ | 195,868 KB |
最終ジャッジ日時 | 2025-02-18 05:31:26 |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 9 |
ソースコード
#include <bits/stdc++.h>using namespace std;#define rep(i, n) for (int i = 0; i < (n); i++)#define rep1(i, n) for (int i = 1; i <= (n); i++)#define rrep(i, n) for (int i = n - 1; i >= 0; i--)#define rrep1(i, n) for (int i = n; i >= 1; i--)#define all(x) x.begin(), x.end()#define rall(x) x.rbegin(), x.rend()#define eb emplace_back#define fi first#define se second#define sz(x) (int)(x).size()template <class T> using V = vector<T>;template <class T> using VV = V<V<T>>;typedef long long int ll;void speedUpIO() {cin.tie(nullptr);ios::sync_with_stdio(false);}template <class T> bool chmax(T &a, const T &b) {if (a < b) {a = b;return true;}return false;}template <class T> bool chmin(T &a, const T &b) {if (b < a) {a = b;return true;}return false;}/*--------------------------------------------------*/typedef pair<int, int> P;const int INF = 1e9;const ll LINF = 1e18;const int MX = 100010;int f(char c) {if (c == 'R') return 0;if (c == 'U') return 1;if (c == 'L') return 0;if (c == 'D') return 1;assert(false);}bool solve() {V<int> x(2), y(2);V<char> d(2);rep(i, 2) cin >> x[i] >> y[i] >> d[i];if (f(d[0]) == f(d[1])) {if (f(d[0]) == 0) {if (y[0] != y[1]) return false;if (x[0] > x[1]) {swap(x[0], x[1]);swap(d[0], d[1]);}return d[0] == 'R' && d[1] == 'L';}if (x[0] != x[1]) return false;if (y[0] > y[1]) {swap(y[0], y[1]);swap(d[0], d[1]);}return d[0] == 'U' && d[1] == 'D';}if (f(d[0]) == 1) {swap(x[0], x[1]);swap(y[0], y[1]);swap(d[0], d[1]);}P is = {x[1], y[0]};if (d[0] == 'R') {if (x[0] > is.fi) return false;} else {if (x[0] < is.fi) return false;}if (d[1] == 'U') {if (y[1] > is.se) return false;} else {if (y[1] < is.se) return false;}rep(i, 2) x[i] -= is.fi, y[i] -= is.se;return abs(x[0]) == abs(y[1]);}int main() {speedUpIO();int t = 1;cin >> t;while (t--) {// solve();// cout << solve() << "\n";cout << (solve() ? "Yes" : "No") << "\n";// cout << fixed << setprecision(15) << solve() << "\n";}return 0;}