您的位置:首页 > 其它

[5055]Bob and math problem(hdu)

2014-10-25 16:02 288 查看


Bob and math problem

Problem Description

There are N Digits, each digit is between 0 and 9. You need to use this N Digits to constitute an Integer.

This Integer needs to satisfy the following conditions:

1. must be an odd Integer.

2. there is no leading zero.

3. find the biggest one which is satisfied 1, 2.

Example:

There are three Digits: 0, 1, 3. It can constitute six number of Integers. Only "301", "103" is legal, while "130", "310", "013", "031" is illegal. The biggest one of odd Integer is "301".

Input

There are multiple test cases. Please process till EOF.

Each case starts with a line containing an integer N ( 1 <= N <= 100 ).

The second line contains N Digits which indicate the digit $a_1, a_2, a_3, \cdots, a_n. ( 0 \leq a_i \leq 9)$.

Output

The output of each test case of a line. If you can constitute an Integer which is satisfied above conditions, please output the biggest one. Otherwise, output "-1" instead.

Sample Input

3
0 1 3
3
5 4 2
3
2 4 6


Sample Output

301
425
-1




#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int a[110];
int n,i,j,k,m,t;
int flag;
while(~scanf("%d",&n))
{
flag=0;
for(i=0; i<n; i++)
scanf("%d",&a[i]);
for(i=0; i<n-1; i++)
for(j=0; j<n-i-1; j++)
if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(i=n-1; i>=0; i--)
{
if(a[i]%2!=0)
{
k=i;
m=a[i];
flag=1;
break;
}
}
if(flag==0)
puts("-1");
else
{
for(i=k; i<n-1; i++)
{
a[i]=a[i+1];
}
a[n-1]=m;
if(a[0]==0)//前导是0则输出“-1”
{
puts("-1");
}
else
{
for(i=0; i<n; i++)
printf("%d",a[i]);
printf("\n");
}

}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: