题目:
天气冷了。
wy学姐玩起了卡牌游戏,她遇到了一个特殊关卡。
在这个关卡中,她只有数字为0或数字为5的卡牌可以打出伤害(把这些卡片上的数字排列成一排即为造成的伤害值)。
Of course,这个特殊的关卡有一个特殊的大BOSS,只有造成90的倍数的伤害值才有效果,否则BOSS将直接免疫伤害值。
天气越来越冷了。
wy学姐不想思考,于是她随机选择了幸运的你,来帮她解决这个问题——手中摸到的牌能打出的最大伤害数是多少?
注意:她可以不把卡牌全部用完。
Input
第一行是一个整数 n (1 ≤ n ≤ 103).
第二行是 n 个整数 a1, a2, ..., an (ai = 0 or ai = 5). 数 ai 即 i-th 卡片上的数字.
Output
输出一个数——造成的最大伤害(90的倍数)。
如果手中的卡牌无法生成90倍数的伤害值,则输出-1.
Examples
Input
4 5 0 5 0
Output
0
Input
11 5 5 5 5 5 5 5 5 0 5 5
Output
5555555550
Note
在第一个测试中,您只能生成一个 90 的倍数 —— 0。
在第二个测试中,您可以生成数 5555555550,它是 90 的倍数。
题解:
即发现一些规律 即只有当5的个数是9的倍数的时候才可以打出伤害值
代码:
#include<iostream>
using namespace std;
int main()
{
int n,i,n5=0,n0=0,a[1010],t;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]==5)
n5++;
if(a[i]==0)
n0++;
}
t=n5/9;
while(t--&&n0)
{
cout<<555555555;
}
if(n5/9&&n0)
{
for(i=0;i<n0;i++)
cout<<0;
printf("\n");
}
else
if(n0>0)
cout<<0<<endl;
else
cout<<-1<<endl;
return 0;
}