51Nod - 1433
x=1000*a+100*b+10*c+d
x=999*a+99*b+9*c+(a+b+c+d)
x=9(99*a+9b+c)+(a+b+c+d)
所以各个数相加的和为9的倍数,那么x就是9的倍数
#include<stdio.h>
#include<string.h>
#include<string>
#include<queue>
#include<math.h>
#include<iostream>
#include<algorithm>
using namespace std;
#define mem(a,b) memset(a,b,sizeof(a))
#define ll long long
const int maxn=2005;
const int inf=0x3f3f3f3f;
const int mod=1000000009;
int a[10];
int main()
{
int n;
while(~scanf("%d",&n))
{
memset(a,0,sizeof(a));
for(int i=0; i<n; i++)
{
int w;
scanf("%d",&w);
a[w]++;
}
if(a[5]>=9&&a[0]>0)
{
for(int i=0; i<a[5]/9*9; i++)
{
printf("5");
}
for(int i=0;i<a[0];i++)
printf("0");
printf("\n");
}
else if(a[0]>0)
printf("0\n");
else
printf("-1\n");
}
return 0;
}