题目描述
HXY得到了一些卡片,这些卡片上标有数字0或5。现在她可以选择其中一些卡片排成一列,使得排出的一列数字组成的数最大,且满足被90整除这个条件。同时这个数不能含有前导0,即0不能作为这串数的首位。如果不能排出这样的数,输出“-1”。
输入输出格式
输入格式:
第一行,卡片的个数n。
第二行,分别给出了这n个数(只能为数字5或0)。
输出格式:
仅一行,如果可以排出,则输出这个数。否则输出“-1”。
输入输出样例
输入样例#1:
4
5 0 5 0
输出样例#1: 0
输入样例#2:
11
5 5 5 5 5 5 5 5 0 5 5
输出样例#2: 5555555550
众所周知
一个数想被9整除
必须各位上面的数之和是九的倍数
所以必须本题中5的个数大于等于九个
而且必须是九的整数倍个
#!/usr/bin/env python
# -*- coding: utf-8 -*-
n = input()
n = int(n)
card = input().split()
cnt = 0
judge = False
for i in range(0, n):
card[i] = int(card[i])
if card[i] == 5:
cnt += 1;
for i in range(0, n):
if card[i] == 0:
judge = True
#print(cnt)
#print(judge)
if judge==True:
if cnt>=9:
card.sort(reverse = True)
temp = int(cnt/9)
r = temp*9
#print(card)
for i in range(cnt-r, n): #就是这里,一开始写成n-r-1,死活想不明白
print(card[i], end='')
else:
print('0')
else:
print('-1')
看起来好像又被我整麻烦了的亚子