結果
問題 | No.2167 Fibonacci Knapsack |
ユーザー |
|
提出日時 | 2022-12-06 22:39:58 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 917 bytes |
コンパイル時間 | 299 ms |
コンパイル使用メモリ | 82,068 KB |
実行使用メモリ | 70,964 KB |
最終ジャッジ日時 | 2024-11-18 00:01:44 |
合計ジャッジ時間 | 2,516 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 WA * 1 |
other | WA * 21 |
ソースコード
import sys,random,bisect from collections import deque,defaultdict from heapq import heapify,heappop,heappush from itertools import permutations from math import gcd,log input = lambda :sys.stdin.readline().rstrip() mi = lambda :map(int,input().split()) li = lambda :list(mi()) f = [0 for i in range(82)] f[1] = 1 f[2] = 2 for i in range(3,82): f[i] = f[i-1] + f[i-2] def solve_lie(N,W,ws): ws = [W+1] + ws for i in range(3,N+1): w = min(ws[i],ws[i-1]+ws[i-2]) tmp = ws[i-1]+ws[i-2] last = i-2 while last >= 3: tmp -= ws[last] tmp += ws[last-1] + ws[last-2] last -= 2 w = min(w,tmp) ws[i] = w res = 0 for i in range(N+1)[::-1]: if ws[i] <= W: W -= ws[i] res += f[i] return res for _ in range(int(input())): N,W = mi() w = li() print(solve_lie(N,W,w))