Submission #1305393

#TimeUsernameProblemLanguageResultExecution timeMemory
1305393aditya_k47Bank (IZhO14_bank)Pypy 3
100 / 100
424 ms67496 KiB
import sys

n,m=map(int,input().split())
a=list(map(int,input().split()))
b=list(map(int,input().split()))

prefix=[-1]*(1<<m)
left=[-1]*(1<<m)
prefix[0]=left[0]=0 

for s in range(1,1<<m):
    for i in range(m):
        if not s>>i&1:
            continue
        bit=s^(1<<i)
        idx=prefix[bit]
        if idx==-1:
            continue
        amt=left[bit]+b[i]
        
        if amt<a[idx]:
            left[s]=amt
            prefix[s]=idx 
        elif amt==a[idx]:
            left[s]=0
            prefix[s]=idx+1

        if prefix[s]==n:
            print("YES")
            exit()

print("NO")

Compilation message (stdout)

Compiling 'bank.py'...

=======
  adding: __main__.pyc (deflated 30%)

=======
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...