# 解题思路:容易知道n为9的整数倍时,设倍数为x,则必须满足1~9每个数字的个数都是x个 # 若n=9*x+y,即多出y个多余的位置,则这多余的y个数不能重复 # 因为可随意调整顺序,保证前面x组1~9的前y个数和最后多出来的y个数顺序一致即可满足要求 # //代码思路:设数组num[9],每个下标正好对应一个数,统计每个数字出现的个数 # 计算n/9和n%9,数组num整体减去n/9,循环判断数组元素是否大于0 # 有小于0的元素说明该元素个数不足返回NO,都大于0则统计剩余1的个数,若等于n%9,则打印YES,否则NO from collections import Counter while True: try: n = int(input()) a = input().split() x,y=divmod(n,9) dict_a = {} for num in range(1, 10): # 统计每个数字出现的个数 dict_a[str(num)] = a.count(str(num)) operate_a = [i - x for i in dict_a.values()] if min(operate_a) < 0: # 有小于0的元素说明该元素个数不足 print("NO") elif min(operate_a) == max(operate_a): # 包含n倍的1~9的数 print("YES") else: if operate_a.count(1) == y and operate_a.count(0)==9-y: print("YES") else: print("NO") except: break