結果

問題 No.3007 組み紐
ユーザー ジュ・ビオレ・グレイス
提出日時 2025-01-07 19:01:51
言語 D
(dmd 2.109.1)
結果
AC  
実行時間 1 ms / 2,000 ms
コード長 544 bytes
コンパイル時間 917 ms
コンパイル使用メモリ 87,708 KB
実行使用メモリ 6,816 KB
最終ジャッジ日時 2025-01-07 19:01:53
合計ジャッジ時間 1,492 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
権限があれば一括ダウンロードができます

ソースコード

diff #

import std.algorithm, std.array, std.conv, std.stdio, std.range;

void main() {
	auto N = readln.split.to!(int[])[0];
	
	if (N == 1) {
		auto K = cast(int) readln.split.length;
		auto L = cast(int) readln.split.length;
		writeln((K - L)%2 == 0 ? "YES" : "NO");
		return;
	}
	
	auto A = (N+1).iota.array, B = A.dup;
	readln.split.to!(int[]).each!(i => swap(A[i-1], A[i]));
	readln.split.to!(int[]).each!(i => swap(B[i-1], B[i]));
	writeln(equal(A, B) ? "YES" : "NO");
	
	void swap(ref int i, ref int j) {
		auto tmp = i;
		i = j;
		j = i;
	}
}

0