链接:https://ac.nowcoder.com/acm/contest/7745/A
来源:牛客网
题目描述
Froggy 分别给出 10 个数码的出现次数,你需要找到一个由这些数码组成的最小的数,满足:
- 这个数是回文的。
- 不能有前导 0。
注:假设这个数字长度是 LL,那么这个数是回文的当且仅当对于任意的 i\in [1,L]i∈[1,L],第 ii 位的数码和第 L-i+1L−i+1 位的数码相同。
快来帮帮 Froggy 吧!
输入描述:
一行 10 个自然数,分别表示数码 0\sim 90∼9 的出现次数。
输出描述:
如果无解,只输出 “-1”。(不含引号)
否则,输出一个数表示最小的解。
示例1
输入
复制
0 2 4 2 0 2 0 0 0 0
输出
复制
1223553221
示例2
输入
复制
1 1 4 5 1 4 0 0 0 0
输出
复制
-1
示例3
输入
复制
4 0 2 3 0 0 0 2 0 0
输出
复制
20037373002
示例4
输入
复制
2 0 0 0 0 0 0 0 0 1
输出
复制
-1
说明
注意不能有前导 0。
示例5
输入
复制
1 0 0 0 0 0 0 0 0 0
输出
复制
0
备注:
保证输入的所有数都不超过 1010,且至少有一个数大于 00。
#include<bits/stdc++.h>
using namespace std;
int a[10];
int main()
{
vector<int>v;
int sum=0;
int ans1=0,ans2=0;
for(int i=0;i<10;i++)
{
cin>>a[i];
sum+=a[i];
if(a[i]%2==1) ans1++;
else ans2++;
}
bool flag=false