結果
問題 |
No.2911 位相の公理
|
ユーザー |
![]() |
提出日時 | 2024-10-04 21:43:36 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 80 ms / 2,000 ms |
コード長 | 711 bytes |
コンパイル時間 | 2,362 ms |
コンパイル使用メモリ | 249,116 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-10-04 21:43:40 |
合計ジャッジ時間 | 3,463 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 24 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll = long long; const int INF = 1e9 + 10; const ll INFL = 4e18; int main() { int N, M; cin >> N >> M; vector<bool> E(1 << N, false); vector<int> A(M); for (int i = 0; i < M; i++) { for (int j = 0; j < N; j++) { char a; cin >> a; A[i] |= (a == '1') << j; } E[A[i]] = true; } bool ans = true; for (int i = 0; i < M; i++) { for (int j = 0; j < M; j++) { if (!E[A[i] | A[j]]) ans = false; if (!E[A[i] & A[j]]) ans = false; } } if (!E.front()) ans = false; if (!E.back()) ans = false; puts(ans ? "Yes" : "No"); }