牛客练习赛71第一题通过率百分之65
#include<iostream>
using namespace std;
int a[100],flag,len,b,ans[100],v;
int main()
{
for(int i=0;i<=9;i++)
{
cin>>a[i];
if(a[i]%2==1)
{flag++;b=i;}
if(flag>1)
{
cout<<-1<<endl;
return 0;
}
if(a[i]!=0&&i!=0&&v==0&&a[i]-1!=0)
v=i;
}
if(a[0]==1&&a[1]==0&&a[2]==0&&a[3]==0&&a[4]==0&&a[5]==0&&a[6]==0&&a[7]==0&&a[8]==0&&a[9]==0)
{
cout<<0<<endl;
return 0;
}
for(int i=0;i<=9;i++)
len+=a[i];
a[b]-=1;
ans[1]=ans[len]=v;
a[v]-=2;
int tem=2;
if(a[0]!=0&&a[0]!=1)
{
for(int i=0;i<=a[0];i+=2)
ans[i]=ans[len-i+1]=0;
tem+=(a[0]/2);
}
for(int i=1;i<=9;i++)
{
for(int j=2;j<=a[i];)
{ans[tem]=ans[len-tem+1]=i;
a[i]-=2;
tem++;}
}
if(flag==1)
{
ans[tem]=b;
}
if(ans[1]==0)
{
cout<<-1;return 0;
}
for(int i=1;i<=len;i++)cout<<ans[i];
return 0;
} #笔试题目##比赛#
