結果

問題 No.3014 岩井満足性問題
ユーザー uuuus17
提出日時 2025-01-25 15:30:53
言語 PyPy3
(7.3.15)
結果
MLE  
実行時間 -
コード長 2,467 bytes
コンパイル時間 202 ms
コンパイル使用メモリ 82,112 KB
実行使用メモリ 363,580 KB
最終ジャッジ日時 2025-01-25 23:46:48
合計ジャッジ時間 31,402 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1 MLE * 2
other AC * 12 TLE * 4 MLE * 2
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
input = lambda: sys.stdin.readline().rstrip()
# # sys.setrecursionlimit(10**7)
# # sys.set_int_max_str_digits(10**6)
# # import pypyjit
# # pypyjit.set_param('max_unroll_recursion=-1')
def mp():return map(int,input().split())
def lmp():return list(map(int,input().split()))
# def lm1(LIST): return list(map(lambda x:x-1, LIST))
# def mps(A):return [tuple(map(int, input().split())) for _ in range(A)]
# def stoi(LIST):return list(map(int,LIST))
# def itos(LIST):return list(map(str,LIST))
# def atoi(LIST): return [ord(i)-ord("a") for i in LIST]
# def Atoi(LIST): return [ord(i)-ord("A") for i in LIST]
# def LT(LIST,N): return LIST[bisect.bisect_left(LIST,N)-1]
# def LE(LIST,N): return LIST[bisect.bisect_right(LIST,N)-1]
# def GT(LIST,N): return LIST[bisect.bisect_right(LIST,N)]
# def GE(LIST,N): return LIST[bisect.bisect_left(LIST,N)]
# def bitA(X,A):return X & 1<<A == 1<<A
# def gtoi(x,y,h,w):return x*w+y
# import math
# import bisect
# import heapq
# import time
# import random as rd
# import itertools
from copy import copy as cc
from copy import deepcopy as dc
# from itertools import accumulate, product
# from collections import Counter, defaultdict, deque
# # from atcoder.dsu import DSU
# # from atcoder.fenwicktree import FenwickTree
# # from atcoder.segtree import SegTree  # (op, ide_ele, LIST)
# # from atcoder.lazysegtree import LazySegTree  # (op, ide_ele, mapping, composition, _id, lst)
# def ceil(U,V):return (U+V-1)//V
# def modf1(N,MOD):return (N-1)%MOD+1
# def pmat(list):
#     for i in list:print(*i)
# m4 = [[1,0],[0,1],[-1,0],[0,-1]]
# m8 = [[-1,-1],[-1,0],[-1,1],[0,-1],[0,1],[1,-1],[1,0],[1,1]]
inf = (1<<63)-1
mod = 998244353

n,d,K = mp()
a = lmp()
c = lmp()
dp = [[-inf]*(K+1) for i in range(d+1)]
dp[0][0] = 0
for i in range(n):
    nxt = dc(dp)
    for j in range(d):
        for k in range(K+1):
            if dp[j][k] == -inf:continue
            nxt[j+1][min(K,k+c[i])] = max(nxt[j+1][min(K,k+c[i])], dp[j][k]+a[i])
    dp = nxt
ans = dp[d][K]
if ans ==-inf:
    print("No")
else:
    print(ans)

#

# s = input()
# if len(s) < 3:
#     print(0)
#     exit()
# ind = -1
# for i in range(len(s)-2):
#     if s[i] == "1" and s[i+1] == "1" and s[i+2] == "0":
#         ind = i
#         break
# if ind == -1:
#     print(0)
#     exit()
# co = 0
# ans = 0
# for i in range(ind,len(s)):
#     if s[i] == "1":co += 1
#     if s[i] == "0":
#         ans += ceil((co-1),2)
#         if co % 2 == 1:co-=1
# print(ans)
#
0