結果

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

ソースコード

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;
			vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new;
			vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new;
			vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new;
			vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new;
			vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new;
			vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new;
			vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new;
		}
		vecs = vecs_new;
	}
	
	foreach (vec; vecs) {
		if (vec == [0, 0, 0, 0, 0, 0, 0, 0]) {
			writeln("Yes");
			return;
		}
	}
	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