类似于3的倍数。
9的倍数,各项加起来一定是9的倍数
10的倍数,肯定有0
所以只要把5的个数记录下来,遍历。判断几个5相加能组成9的倍数
然后必须有个0.
最后输出就好
#include<iostream>
#include<queue>
#include<vector>
#include<stack>
#include<algorithm>
#include<cmath>
#include<set>
#include<map>
#include<cstdio>
using namespace std;
int main(){
int n;
cin>>n;
int wu=0,ling=0;
for(int i=0;i<n;i++){
int num;
scanf("%d",&num);
if(num==5) wu++;
else ling++;
}
int flag=0;
int len=0;
for(int i=wu;i>0;i--){
if((5*i)%9==0){
flag=1;
len=i;
break;
}
}
if(ling==0) printf("-1");
else
if(flag){
if(ling!=0){
for(int i=0;i<len;i++) printf("5");
for(int i=0;i<ling;i++) printf("0");
}
}
else printf("0");
return 0;
}