牛客练习赛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; }
#笔试题目##比赛#