Jeff ' s got n cards, each card contains either digit 0, or digit 5. Jeff can choose several cards and put them in a line so that he gets some number. What's the largest possible number divisible by all Jeff can make from the cards he ' s got?
Jeff must make the number without leading zero. At that, we assume the so number 0 doesn ' t contain any leading zeroes. Jeff doesn ' t has the use of all the cards.
Input
The first line contains integer n(1≤ n ≤103). The next line contains n integers a1, a2, ..., a n (ai = 0 or ai = 5). Number airepresents the digit that's written on the I-th card.
Output
In a single line print the answer to the problem-the maximum number, divisible by 90. If you can ' t do any divisible by a number from the cards, print-1.
Sample Input
Input
4
5 0 5 0
Output
0
Input
11
5 5 5 5 5 5 5 5 0 5 5
Output
5555555550
Hint
In the first test, you can make only one number, which is a multiple of 90- 0.
In the second test you can do number 5555555550, it is a multiple of .
/* Rule 9 5 can be divisible by 9 to put 0 all to the end, if there is no 0 failure */#include <cstdio> #include <cstring> #include < Algorithm>using namespace Std;int Main () { int n; int a[1100]; while (~SCANF ("%d", &n)) {for (int i = 1; I <= n; i++) scanf ("%d", &a[i]); int NUM1 = 0, num2 = 0; for (int i = 1; I <= n; i++) { if (a[i] = = 5) num1++; if (a[i] = = 0) num2++; } Num1/= 9; if (num2 = = 0) {printf (" -1\n"); continue;} if (Num1 = = 0 && num2! = 0) {printf ("0\n"); continue;} if (Num1 = = 0 && num2 = = 0) {printf (" -1\n"); continue;} else {for (int i = 1; I <= num1; i++) { printf ("555555555"); } for (int i = 1; I <= num2; i++) printf ("0"); } Puts (""); } return 0;}
Codeforces Round #204 (Div. 2)--a Find patterns--jeff and Digits