結果
問題 |
No.2522 Fall in love, Girls!
|
ユーザー |
![]() |
提出日時 | 2022-01-24 20:40:34 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
RE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 883 bytes |
コンパイル時間 | 134 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 11,008 KB |
最終ジャッジ日時 | 2024-09-25 13:15:31 |
合計ジャッジ時間 | 2,179 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | RE * 4 |
other | RE * 30 |
ソースコード
import sys input = sys.stdin.readline n, s = map(int, input().split()) a = [1, 2] for i in range(n - 2): a.append(a[i] + a[i + 1]) fa = a[:(n // 2)]; fl = len(fa) sa = a[(n // 2):]; sl = len(sa) def dict(a): d = {} st = set([]) l = len(a) for bit in range(1 << l): b = bit f = False while(b): if((b & 3) == 3): f = True break b >>= 1 if(f): continue val = 0 for i in range(l): if((bit >> i) & 1): val += a[i] d[val] = bit st.add(val) return d, st fd, fst = dict(fa) sd, sst = dict(sa) ans = [] for v in fst: nv = s - v if(nv not in sst): continue fbit = fd[v] sbit = sd[nv] if(((fbit >> (fl - 1)) & 1) and (sbit & 1)): continue for i in range(fl): if((fbit >> i) & 1): ans.append(i + 1) for i in range(sl): if((sbit >> i) & 1): ans.append(fl + i + 1) break else: print("No") exit(0) print("Yes") print(*ans)