結果

問題 No.2267 群の公理
ユーザー ks2m
提出日時 2023-04-14 21:53:20
言語 Java
(openjdk 23)
結果
AC  
実行時間 190 ms / 2,000 ms
コード長 1,180 bytes
コンパイル時間 2,749 ms
コンパイル使用メモリ 77,172 KB
実行使用メモリ 43,252 KB
最終ジャッジ日時 2024-10-10 12:38:58
合計ジャッジ時間 12,194 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 50
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.util.Scanner;

public class Main {
	public static void main(String[] args) throws Exception {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[][] a = new int[n][n];
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n; j++) {
				a[i][j] = sc.nextInt();
			}
		}
		sc.close();

		boolean flg1 = true;
		label:
		for (int m0 = 0; m0 < n; m0++) {
			for (int m1 = 0; m1 < n; m1++) {
				for (int m2 = 0; m2 < n; m2++) {
					if (a[a[m0][m1]][m2] != a[m0][a[m1][m2]]) {
						flg1 = false;
						break label;
					}
				}
			}
		}
		if (!flg1) {
			System.out.println("No");
			return;
		}

		for (int e = 0; e < n; e++) {
			boolean flga = true;
			for (int m = 0; m < n; m++) {
				if (a[m][e] != a[e][m] || a[m][e] != m) {
					flga = false;
					break;
				}
			}
			if (flga) {
				for (int m = 0; m < n; m++) {
					boolean flg = false;
					for (int i = 0; i < n; i++) {
						if (a[m][i] == a[i][m] && a[m][i] == e) {
							flg = true;
							break;
						}
					}
					if (!flg) {
						flga = false;
						break;
					}
				}
				if (flga) {
					System.out.println("Yes");
					return;
				}
			}
		}
		System.out.println("No");
	}
}
0