結果
| 問題 | No.2267 群の公理 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-04-14 22:04:12 |
| 言語 | D (dmd 2.109.1) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 858 bytes |
| 記録 | |
| コンパイル時間 | 906 ms |
| コンパイル使用メモリ | 96,908 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-06-22 17:45:09 |
| 合計ジャッジ時間 | 2,089 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 50 |
ソースコード
import std.stdio;
import std.string;
import std.conv;
void main(){
int n = readln.chomp.to!int;
int[][] m;
foreach(_; 0 .. n){
m ~= readln.split.to!(int[]);
}
writeln(c(m) && e(m) ? "Yes" : "No");
}
bool c(int[][] m){
bool r = true;
foreach(n0; 0 .. m.length){
foreach(n1; 0 .. m.length){
foreach(n2; 0 .. m.length){
r = r && (m[m[n0][n1]][n2] == m[n0][m[n1][n2]]);
}
}
}
return r;
}
bool e(int[][] m){
foreach(x; 0 .. m.length){
bool r = true;
foreach(n; 0 .. m.length){
r = r && (m[n][x] == n && m[x][n] == n);
}
if(!r) continue;
foreach(n; 0 .. m.length){
r = false;
foreach(i; 0 .. m.length){
if(m[n][i] == x && m[i][n] == x){
r = true;
break;
}
}
if(!r) break;
}
if(r) return true;
}
return false;
}