#include <iostream>#include <string>#include <algorithm>using namespace std;int a[10];void solve() { int cna = 0, cnb = 0, p = -1; for(int i = 0; i < 10; i++) { cin >> a[i]; if(a[i] % 2 == 1) cna++, p = i; else if(a[i]) cnb++; } // 特判 if(a[0] == 1 && cna == 1 && cnb == 0) { cout << 0 << endl; return; } if(cna > 1 || (a[0] && a[0] % 2 == 0 && cna <= 1 && cnb <= 1 && a[p] == 1) || (a[0] && a[0] % 2 && cna == 1 && !cnb)) { // 这里容易漏判 cout << -1 << endl; return; } string ans = ""; if(!a[0]) { // 没 0 if(cna) a[p]--; for(int i = 1; i < 10; i++) { if(!a[i]) continue; int r = a[i]; r >>= 1; while(r--) { ans += (char)(i + '0'); } } string t = ans; reverse(t.begin(), t.end()); if(cna) ans += (char)(p + '0'); ans += t; } else { // 有 0 if(cna) a[p]--; int q = 0; for(int i = 1; i < 10; i++) { if(!a[i]) continue; ans += (char)(i + '0'); a[i]--; q = i; break; } int r = a[0] / 2; while(r--) { ans += '0'; } for(int i = q; i < 10; i++) { if(!a[i]) continue; int r = a[i]; r >>= 1; while(r--) { ans += (char)(i + '0'); } } string t = ans; reverse(t.begin(), t.end()); if(cna) ans += (char)(p + '0'); ans += t; } cout << ans << endl;}int main() { solve(); return 0;}// hack : 0 4 6 9 4 2 6 4 8 2// hackii : 4 5 0 0 0 0 0 0 0 0把 输出 0 的情况放后面一并处理。#include <iostream>#include <string>#include <algorithm>using namespace std;int a[10];void solve() { int cna = 0, cnb = 0, p = -1; for(int i = 0; i < 10; i++) { cin >> a[i]; if(a[i] % 2 == 1) cna++, p = i; else if(a[i]) cnb++; } // 特判 - 第三部分后面的 a[0] 改成了 a[0] > 1 if(cna > 1 || (a[0] && a[0] % 2 == 0 && cna <= 1 && cnb <= 1 && a[p] == 1) || (a[0] > 1 && a[0] % 2 && cna == 1 && !cnb)) { // 这里容易漏判 cout << -1 << endl; return; } string ans = ""; if(!a[0]) { // 没 0 if(cna) a[p]--; for(int i = 1; i < 10; i++) { if(!a[i]) continue; int r = a[i]; r >>= 1; while(r--) { ans += (char)(i + '0'); } } string t = ans; reverse(t.begin(), t.end()); if(cna) ans += (char)(p + '0'); ans += t; } else { // 有 0 if(cna) a[p]--; int q = 0; for(int i = 1; i < 10; i++) { if(!a[i]) continue; ans += (char)(i + '0'); a[i]--; q = i; break; } int r = a[0] / 2; while(r--) { ans += '0'; } for(int i = q; i < 10; i++) { if(!a[i]) continue; int r = a[i]; r >>= 1; while(r--) { ans += (char)(i + '0'); } } string t = ans; reverse(t.begin(), t.end()); if(cna) ans += (char)(p + '0'); ans += t; } cout << ans << endl;}int main() { solve(); return 0;}// hack : 0 4 6 9 4 2 6 4 8 2// hackii : 4 5 0 0 0 0 0 0 0 0