题目描述
HXY得到了一些卡片,这些卡片上标有数字 0 或 5 。现在她可以选择其中一些卡片排成一列,使得排出的一列数字组成的数最大,且满足被 90 整除这个条件。同时,这个数必须为合法的某个非负整数,即不能含有前导 0 ,即 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
输入样例3
2
5 5
输出样例3
-1
#include<iostream>
using namespace std;
int a[1001];
int main()
{
int n,five=0,zero=0;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=0;i<n;i++)
{
if(a[i]==5)
{
five++;
}
else if(a[i]==0)
{
zero++;
}
}
if(five<9&&zero!=0)
{
cout<<"0"<<endl;
exit(0);
}
else if((five<9&&zero==0)||zero==0)
{
cout<<"-1"<<endl;
exit(0);
}
else if(five>=9&&zero!=0)
{
for(int i=0;i<five-five%9;i++)
{
cout<<"5";
}
for(int i=0;i<zero;i++)
{
cout<<"0";
}
}
return 0;
}