結果
問題 |
No.3211 NAND Oracle
|
ユーザー |
|
提出日時 | 2025-07-26 14:48:55 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,247 bytes |
コンパイル時間 | 390 ms |
コンパイル使用メモリ | 82,228 KB |
実行使用メモリ | 77,528 KB |
最終ジャッジ日時 | 2025-07-26 14:49:01 |
合計ジャッジ時間 | 5,369 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 RE * 1 |
other | AC * 16 RE * 12 |
ソースコード
def nand(a, b): """Return the NAND of two boolean values.""" return not (a and b) q, k = map(int, input().split()) if q <= 8: # naive solution ans = [] vallist = [[] for i in range(4)] vallist[0] = [0,0] vallist[1] = [0,1] vallist[2] = [1,0] vallist[3] = [1,1] def solve(cnt): if cnt == q: maxval = 0 for i in range(4): maxval = max(maxval, sum(vallist[i])) if maxval <= k: print("Yes") for x,y in ans: print(x,y) exit() return for x in range(cnt+2): for y in range(x+1, cnt+2): for i in range(4): vallist[i].append(nand(vallist[i][x], vallist[i][y])) ans.append((x+1, y+1)) solve(cnt + 1) for i in range(4): vallist[i].pop() ans.pop() solve(0) print("No") else: x = 0/0 if k >= 3: print("Yes") ans = [(1,2), (1,3), (3,4), (1,5)] for i in range(5, q + 1): ans.append((5, 6)) for x, y in ans: print(x, y) else: print("No")