結果

問題 No.3235 巡回減算
ユーザー ジュ・ビオレ・グレイス
提出日時 2025-08-15 22:39:25
言語 D
(dmd 2.109.1)
結果
WA  
実行時間 -
コード長 1,778 bytes
コンパイル時間 1,744 ms
コンパイル使用メモリ 62,828 KB
実行使用メモリ 133,392 KB
最終ジャッジ日時 2025-08-15 22:39:47
合計ジャッジ時間 13,606 ms
ジャッジサーバーID
(参考情報)
judge6 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 13 WA * 17
権限があれば一括ダウンロードができます

ソースコード

diff #

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

void main() {
	int[8][] A;
	foreach (_; 0 .. 8) {
		auto row = readln[0 .. $-1];
		int[8] row8;
		foreach (i; 0 .. 8) row8[i] = row[i] - '0'; 
		A ~= row8;
	}
	
	int[8][] vecs = [A[0]];
	foreach (i; 1 .. 8) {
		int[8][] vecs_new;
		foreach (vec; vecs) {
			int[8] vec_new;
			vec_new = vec[] - A[i][]; vecs_new ~= vec_new;
			if (vecs_new[$-1] == [0, 0, 0, 0, 0, 0, 0, 0] && i == 8) { writeln("Yes"); return; }
			
			vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new;
			if (vecs_new[$-1] == [0, 0, 0, 0, 0, 0, 0, 0] && i == 8) { writeln("Yes"); return; }
			
			vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new;
			if (vecs_new[$-1] == [0, 0, 0, 0, 0, 0, 0, 0] && i == 8) { writeln("Yes"); return; }
			
			vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new;
			if (vecs_new[$-1] == [0, 0, 0, 0, 0, 0, 0, 0] && i == 8) { writeln("Yes"); return; }
			
			vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new;
			if (vecs_new[$-1] == [0, 0, 0, 0, 0, 0, 0, 0] && i == 8) { writeln("Yes"); return; }
			
			vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new;
			if (vecs_new[$-1] == [0, 0, 0, 0, 0, 0, 0, 0] && i == 8) { writeln("Yes"); return; }
			
			vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new;
			if (vecs_new[$-1] == [0, 0, 0, 0, 0, 0, 0, 0] && i == 8) { writeln("Yes"); return; }
			
			vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new;
			if (vecs_new[$-1] == [0, 0, 0, 0, 0, 0, 0, 0] && i == 8) { writeln("Yes"); return; }
		}
		vecs = vecs_new;
	}
	
	writeln("No");
}

int[8] cycle(int[8] vec) {
	int[8] vec2;
	vec2 = [vec[1], vec[2], vec[3], vec[4], vec[5], vec[6], vec[7], vec[0]];
	return vec2;
} 
0