#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll calc(vector<int> arr, int ok){
    ll ret = 102345678900000L;
    if(arr.size() > 1){
        for(int d = 0;d<9+ok;++d){
            int y = d, cur = 0; bool zero = false;
            vector<int> B;
            for(int i = 0;i<arr.size();++i){
                int x = arr[i];
                cur |= (x&(1023-(1<<y)));
                if(x & 1 && y == 0) zero = true;
                y = (y+1)%10;
                if(!y || i == arr.size()-1){
                    B.push_back(cur);
                    cur = 0;
                }
            }
            ll val = calc(B,(arr.size() >= 3 || d < 9))*10+d;
            if(!val && zero) val = 10;
            ret = min(ret,val);
        }
        return ret;
    }
    else{
        ret = 0;
        for(int i = 1;i<=9;++i){
            if(arr[0]&(1<<i)){
                ret = (ret*10)+i;
                if(ret == i && arr[0]&1) ret *= 10;
            }
        }
        if(ret == 0 && arr[0]&1) ret = 10;
        return ret;
    }
}
int main()
{
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int K; cin >> K;
    vector<int> arr;
    for(int i = 0;i<K;++i){
        int b; cin >> b;
        arr.push_back((1<<b));
    }
    cout << calc(arr,1) << "\n";
    return 0;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |