結果
問題 |
No.2267 群の公理
|
ユーザー |
![]() |
提出日時 | 2023-04-15 10:06:28 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,081 bytes |
コンパイル時間 | 3,138 ms |
コンパイル使用メモリ | 250,944 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-10 22:34:27 |
合計ジャッジ時間 | 4,483 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 50 |
ソースコード
#include<bits/stdc++.h> using namespace std; using ll = long long; int main(){ int n; cin>>n; vector<vector<int> >a(n,vector<int>(n)); for(int i = 0;i<n;i++) for(int j =0;j<n;j++) cin>>a[i][j]; bool fn = false; int ni = -1; for(int i = 0;i<n;i++){ bool can = true; for(int j = 0;j<n;j++) { if(a[i][j]==j&&a[j][i]==j) continue; can = false; } if(can){ ni = i; fn = true; break; } } if(!fn){ cout<<"No\n"; return 0; } for(int i = 0;i<n;i++) { bool can = false; for(int j = 0;j<n;j++){ if(a[i][j]==ni&&a[j][i]==ni) can = true; } if(!can) fn = false; } if(!fn){ cout<<"No\n"; return 0; } for(int i = 0;i<n;i++) for(int j = 0;j<n;j++) for(int k = 0;k<n;k++){ int le = a[i][j]; int w = a[le][k]; int ri = a[j][k]; if(w==a[i][ri]) continue; fn = false; } if(fn) cout<<"Yes\n"; else cout<<"No\n"; }