Submission #429413

# Submission time Handle Problem Language Result Execution time Memory
429413 2021-06-15T23:06:17 Z SansPapyrus683 Bank (IZhO14_bank) PyPy 3
100 / 100
611 ms 36984 KB
from sys import exit

people_num, note_num = [int(i) for i in input().split()]
people = [int(i) for i in input().split()]
banknotes = [int(i) for i in input().split()]

leftover = [-1 for _ in range(1 << note_num)]
people_covered = [-1 for _ in range(1 << note_num)]
leftover[0] = 0
people_covered[0] = 0
for s in range(1, 1 << note_num):
    for last in range(note_num):
        if (s & (1 << last)) == 0:
            continue
        prev = s & ~(1 << last)
        if people_covered[prev] == -1:
            continue
        
        new_amt = leftover[prev] + banknotes[last]
        curr_target = people[people_covered[prev]]
        if new_amt < curr_target:
            people_covered[s] = people_covered[prev]
            leftover[s] = new_amt
        elif new_amt == curr_target:
            people_covered[s] = people_covered[prev] + 1
            leftover[s] = 0

    if people_covered[s] == people_num:
        print("YES")
        exit()
print("NO")
# Verdict Execution time Memory Grader output
1 Correct 47 ms 18208 KB Output is correct
2 Correct 47 ms 18092 KB Output is correct
3 Correct 56 ms 19080 KB Output is correct
4 Correct 50 ms 19236 KB Output is correct
5 Correct 346 ms 35396 KB Output is correct
6 Correct 58 ms 18976 KB Output is correct
7 Correct 61 ms 19340 KB Output is correct
8 Correct 78 ms 35776 KB Output is correct
9 Correct 450 ms 35592 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 61 ms 19316 KB Output is correct
2 Correct 60 ms 19072 KB Output is correct
3 Correct 63 ms 18932 KB Output is correct
4 Correct 57 ms 19140 KB Output is correct
5 Correct 56 ms 18976 KB Output is correct
6 Correct 57 ms 18808 KB Output is correct
7 Correct 62 ms 19240 KB Output is correct
8 Correct 60 ms 19084 KB Output is correct
9 Correct 59 ms 19108 KB Output is correct
10 Correct 64 ms 19144 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 69 ms 19756 KB Output is correct
2 Correct 81 ms 20632 KB Output is correct
3 Correct 73 ms 20104 KB Output is correct
4 Correct 61 ms 19664 KB Output is correct
5 Correct 81 ms 19616 KB Output is correct
6 Correct 62 ms 19584 KB Output is correct
7 Correct 79 ms 19928 KB Output is correct
8 Correct 79 ms 20360 KB Output is correct
9 Correct 66 ms 19612 KB Output is correct
10 Correct 66 ms 19644 KB Output is correct
11 Correct 78 ms 19516 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 47 ms 18208 KB Output is correct
2 Correct 47 ms 18092 KB Output is correct
3 Correct 56 ms 19080 KB Output is correct
4 Correct 50 ms 19236 KB Output is correct
5 Correct 346 ms 35396 KB Output is correct
6 Correct 58 ms 18976 KB Output is correct
7 Correct 61 ms 19340 KB Output is correct
8 Correct 78 ms 35776 KB Output is correct
9 Correct 450 ms 35592 KB Output is correct
10 Correct 61 ms 19316 KB Output is correct
11 Correct 60 ms 19072 KB Output is correct
12 Correct 63 ms 18932 KB Output is correct
13 Correct 57 ms 19140 KB Output is correct
14 Correct 56 ms 18976 KB Output is correct
15 Correct 57 ms 18808 KB Output is correct
16 Correct 62 ms 19240 KB Output is correct
17 Correct 60 ms 19084 KB Output is correct
18 Correct 59 ms 19108 KB Output is correct
19 Correct 64 ms 19144 KB Output is correct
20 Correct 69 ms 19756 KB Output is correct
21 Correct 81 ms 20632 KB Output is correct
22 Correct 73 ms 20104 KB Output is correct
23 Correct 61 ms 19664 KB Output is correct
24 Correct 81 ms 19616 KB Output is correct
25 Correct 62 ms 19584 KB Output is correct
26 Correct 79 ms 19928 KB Output is correct
27 Correct 79 ms 20360 KB Output is correct
28 Correct 66 ms 19612 KB Output is correct
29 Correct 66 ms 19644 KB Output is correct
30 Correct 78 ms 19516 KB Output is correct
31 Correct 521 ms 35996 KB Output is correct
32 Correct 469 ms 36244 KB Output is correct
33 Correct 315 ms 36064 KB Output is correct
34 Correct 307 ms 35912 KB Output is correct
35 Correct 389 ms 35356 KB Output is correct
36 Correct 286 ms 35532 KB Output is correct
37 Correct 292 ms 35888 KB Output is correct
38 Correct 357 ms 35360 KB Output is correct
39 Correct 78 ms 35572 KB Output is correct
40 Correct 288 ms 35824 KB Output is correct
41 Correct 319 ms 36128 KB Output is correct
42 Correct 413 ms 35488 KB Output is correct
43 Correct 290 ms 36252 KB Output is correct
44 Correct 357 ms 35232 KB Output is correct
45 Correct 90 ms 35712 KB Output is correct
46 Correct 340 ms 36528 KB Output is correct
47 Correct 271 ms 35680 KB Output is correct
48 Correct 77 ms 35744 KB Output is correct
49 Correct 346 ms 35428 KB Output is correct
50 Correct 517 ms 36196 KB Output is correct
51 Correct 472 ms 36476 KB Output is correct
52 Correct 305 ms 35824 KB Output is correct
53 Correct 558 ms 36984 KB Output is correct
54 Correct 544 ms 35724 KB Output is correct
55 Correct 506 ms 36128 KB Output is correct
56 Correct 470 ms 35648 KB Output is correct
57 Correct 611 ms 36000 KB Output is correct
58 Correct 606 ms 35872 KB Output is correct