from itertools import combinations_with_replacement
from collections import Counter, defaultdict
import sys
def counter_to_list(counter):
new_list = [0]*11
for k,v in counter.items():
new_list[k] = v
return new_list
def solution(n, info):
apeach_info = info[::-1]
lion_shots = list(combinations_with_replacement(list(range(11)), n))
global_gap = -sys.maxsize
global_lion_gap_key_dict = defaultdict(list)
for lion_shot in lion_shots:
lion_info_counter = Counter(lion_shot)
lion_score = 0
apeach_score = 0
for i in range(11):
if apeach_info[i]==0 and lion_info_counter[i]==0:
continue
elif apeach_info[i] < lion_info_counter[i]:
lion_score += i
else:
apeach_score += i
gap = lion_score - apeach_score
if global_gap <= gap:
global_gap = gap
global_lion_gap_key_dict[global_gap].append(counter_to_list(lion_info_counter))
if global_gap <= 0:
return [-1]
else:
return max(global_lion_gap_key_dict[global_gap])[::-1]
return None