Submission #122999

#TimeUsernameProblemLanguageResultExecution timeMemory
122999model_codeKitchen (BOI19_kitchen)Cpython 2
0 / 100
14 ms3016 KiB
import array
N = 300
n,m,k = [int(x) for x in input().split()]
a = [int(x) for x in input().split()]
b = [int(x) for x in input().split()]
supply = array.array('i', [-N*N for i in range(N*N+1)])
supply[0] = 0;
def solve():
    if(min(a) < k):
        return 'Impossible'
    bsum = 0
    for x in b:
        bsum += x
        for i in range(bsum,-1,-1):
            supply[i+x] = max(supply[i+x],supply[i]+min(x,n))
    for i in range(sum(a),N*N+1):
        if(supply[i] >= n*k):
            return i-sum(a)
    return 'Impossible'
print(solve())
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...