結果
| 問題 |
No.3311 フィルター
|
| コンテスト | |
| ユーザー |
yu23578
|
| 提出日時 | 2025-10-07 20:49:08 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 871 bytes |
| コンパイル時間 | 377 ms |
| コンパイル使用メモリ | 12,416 KB |
| 実行使用メモリ | 28,828 KB |
| 最終ジャッジ日時 | 2025-10-07 20:49:24 |
| 合計ジャッジ時間 | 16,323 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 17 TLE * 3 |
ソースコード
# 1. 入力の受け取り
ans = True
N, M = map(int, input().split())
A = [0] * M
B = set() # 3.の存在判定のときに使用
for i in range(M):
S = input().strip()
now = 0
for j in range(N):
now += (int(S[N - j - 1]) - 0) * (1 << j)
B.add(now)
A[i] = now
# 2. 条件1を満たすかの確認
for i in range(M):
if A[i] == 0:
ans = False
# 3. 条件2を満たすかの確認
cnt = [0] * (1 << N) # 4.で使用する配列
for i in range(M):
cnt[A[i]] += 1
for j in range(N):
if (A[i] & (1 << j)) != 0:
continue
if (A[i] | (1 << j)) not in B:
ans = False
cnt[A[i] | (1 << j)] += 1
# 4. 条件3を満たすかの確認
one = 0
for i in range(1 << N):
if cnt[i] == 1:
one += 1
if one >= 2:
ans = False
# 5. 出力
print("Yes" if ans else "No")
yu23578