結果

問題 No.2564 衝突予測
ユーザー k82bk82b
提出日時 2023-12-02 15:29:19
言語 D
(dmd 2.106.1)
結果
TLE  
実行時間 -
コード長 1,464 bytes
コンパイル時間 2,962 ms
コンパイル使用メモリ 164,848 KB
実行使用メモリ 10,260 KB
最終ジャッジ日時 2023-12-02 15:29:33
合計ジャッジ時間 7,594 ms
ジャッジサーバーID
(参考情報)
judge15 / judge13
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
6,676 KB
testcase_01 AC 1 ms
6,676 KB
testcase_02 AC 1 ms
6,676 KB
testcase_03 TLE -
testcase_04 -- -
testcase_05 -- -
testcase_06 -- -
testcase_07 -- -
testcase_08 -- -
testcase_09 -- -
testcase_10 -- -
testcase_11 -- -
権限があれば一括ダウンロードができます

ソースコード

diff #

import std, core.bitop;
string[] _R;
void readM(T)(ref T x) { while (_R.empty) { _R = readln.chomp.split; } x = _R.front.to!T; _R.popFront; }
bool chmin(T)(ref T A, T B) { if (A > B) { A = B; return true; } else { return false; } }
bool chmax(T)(ref T A, T B) { if (A < B) { A = B; return true; } else { return false; } }
int lowerBound(T)(T[] A, T x) { int lo = -1, hi = cast(int)(A.length); while (hi - lo > 1) { int mid = lo + hi >> 1; (A[mid] < x ? lo : hi) = mid; } return hi; }
int upperBound(T)(T[] A, T x) { int lo = -1, hi = cast(int)(A.length); while (hi - lo > 1) { int mid = lo + hi >> 1; (A[mid] > x ? hi : lo) = mid; } return hi; }

void main() {
	int TE;
	TE.readM;
	enum dx = [-1, 1, 0, 0];
	enum dy = [0, 0, 1, -1];
	int[256] A;
	A['L'] = 0;
	A['R'] = 1;
	A['U'] = 2;
	A['D'] = 3;
	foreach (_; 0 .. TE) {
		long X1, Y1, X2, Y2;
		char D1, D2;
		X1.readM;
		Y1.readM;
		D1.readM;
		X2.readM;
		Y2.readM;
		D2.readM;
		X1 *= 2;
		Y1 *= 2;
		X2 *= 2;
		Y2 *= 2;
		long f(long x) {
			long a = X1, b = Y1, c = X2, d = Y2;
			a += x * dx[A[D1]];
			b += x * dy[A[D1]];
			c += x * dx[A[D2]];
			d += x * dy[A[D2]];
			return abs(a - c) + abs(b - d);
		}
		long lo = 1, hi = 10L ^^ 11;
		while (hi - lo > 2) {
			long mid1 = (lo + lo + hi) / 3;
			long mid2 = (lo + hi + hi) / 3;
			if (f(mid1) > f(mid2)) lo = mid1;
			else hi = mid2;
		}
		bool ans = false;
		foreach (i; lo .. hi + 1) {
			ans = ans || !f(i);
		}
		writeln(ans ? "Yes" : "No");
	}
}
0