Submission #768338

# Submission time Handle Problem Language Result Execution time Memory
768338 2023-06-27T23:55:56 Z iamjiamingliu Bank (IZhO14_bank) PyPy 3
46 / 100
513 ms 25568 KB
input()
salaries = set(map(int, input().split()))
notes = list(map(int, input().split()))

if len(salaries) > len(notes):
    print('NO')
    exit()

combo_to_form = {val: [] for val in salaries}
for subset in range(1 << len(notes)):
    subset_sum = sum(notes[j] for j in range(subset.bit_length()) if (1 << j) & subset)
    if subset_sum in salaries:
        combo_to_form[subset_sum].append(subset)

if not all(combo_to_form.values()):
    print('NO')
    exit()

prev_subsets = {(1 << len(notes)) - 1}
for val in salaries:
    new_subsets = set()
    for prev in prev_subsets:
        for needed in combo_to_form[val]:
            if (prev & needed) == needed:
                new_subsets.add(prev - needed)
    if not new_subsets:
        print('NO')
        exit()
    prev_subsets = new_subsets

print('YES')
# Verdict Execution time Memory Grader output
1 Correct 32 ms 18220 KB Output is correct
2 Correct 31 ms 18244 KB Output is correct
3 Correct 47 ms 20360 KB Output is correct
4 Correct 73 ms 22672 KB Output is correct
5 Correct 513 ms 25332 KB Output is correct
6 Correct 46 ms 20392 KB Output is correct
7 Correct 58 ms 22332 KB Output is correct
8 Correct 489 ms 25568 KB Output is correct
9 Correct 476 ms 25256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 59 ms 20296 KB Output is correct
2 Correct 47 ms 20372 KB Output is correct
3 Correct 48 ms 20376 KB Output is correct
4 Incorrect 61 ms 20352 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 66 ms 22660 KB Output is correct
2 Correct 67 ms 22600 KB Output is correct
3 Correct 66 ms 22684 KB Output is correct
4 Correct 72 ms 22792 KB Output is correct
5 Correct 67 ms 22568 KB Output is correct
6 Correct 65 ms 22688 KB Output is correct
7 Correct 66 ms 22648 KB Output is correct
8 Correct 68 ms 22672 KB Output is correct
9 Correct 75 ms 22656 KB Output is correct
10 Correct 71 ms 22732 KB Output is correct
11 Correct 67 ms 22708 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 32 ms 18220 KB Output is correct
2 Correct 31 ms 18244 KB Output is correct
3 Correct 47 ms 20360 KB Output is correct
4 Correct 73 ms 22672 KB Output is correct
5 Correct 513 ms 25332 KB Output is correct
6 Correct 46 ms 20392 KB Output is correct
7 Correct 58 ms 22332 KB Output is correct
8 Correct 489 ms 25568 KB Output is correct
9 Correct 476 ms 25256 KB Output is correct
10 Correct 59 ms 20296 KB Output is correct
11 Correct 47 ms 20372 KB Output is correct
12 Correct 48 ms 20376 KB Output is correct
13 Incorrect 61 ms 20352 KB Output isn't correct
14 Halted 0 ms 0 KB -