主题链接:
Problem Description
Recently, Bob has been thinking about a math problem. 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.
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
Source
官方题解:
代码例如以下:
#include#include #include using namespace std;int main(){ int n; int a[117]; while(~scanf("%d",&n)) { int minn = 10; int flag = 0; int tt = 0; for(int i = 0; i < n; i++) { scanf("%d",&a[i]); if(a[i]&1) { flag = 1; if(a[i] < minn) { minn = a[i]; tt = i; } } } a[tt] = 10; sort(a,a+n); if(!flag) { printf("-1\n"); continue; } flag = 0; for(int i = n-2; i >= 0; i--) { if(a[i]==0 && !flag) continue; flag = 1; printf("%d",a[i]); } if(flag || n==1) printf("%d\n",minn); else printf("-1\n"); } return 0;}
版权声明:本文博主原创文章。博客,未经同意不得转载。