func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAX_N = 101;   int a[MAX_N];   int n;   vector<vector<int>> ans;   pair<int, int> pop(multiset<pair<int, int>, std::greater<pair<int, int>>> &s) {     pair<int, int> x = *s.begin();     s.erase(s.begin());     return x;   }   bool check(int d) {     ans.clear();     multiset<pair<int, int>, std::greater<pair<int, int>>> s;     int sum = 0;     for (int i = 0; i < n; i++) {       if (a[i] < d) return false;       s.insert({a[i] - d, i});       sum += a[i] - d;     }     if (sum % 2 == 1) {       if (n < 3) return false;       pair<int, int> x = pop(s), y = pop(s), z = pop(s);       if (z.first == 0) return false;       ans.push_back({x.second, y.second, z.second});       s.insert({x.first - 1, x.second});       s.insert({y.first - 1, y.second});       s.insert({z.first - 1, z.second});       sum -= 3;     }     while (sum > 0) {       if (n < 2) return false;       pair<int, int> x = pop(s), y = pop(s);       if (y.first == 0) return false;       ans.push_back({x.second, y.second});       s.insert({x.first - 1, x.second});       s.insert({y.first - 1, y.second});       sum -= 2;     }     return true;   }   void dummy() {     ans.clear();     multiset<pair<int, int>, std::greater<pair<int, int>>> s;     for (int i = 0; i < n; i++) {       s.insert({a[i], i});     }     while ((*s.begin()).first > 0) {       pair<int, int> x = pop(s), y = pop(s);       s.insert({(x.first > 1 ? x.first - 1 : 0), x.second});       s.insert({(y.first > 1 ? y.first - 1 : 0), y.second});       ans.push_back({x.second, y.second});     }   }   int main() {     cin >> n;     int r = MAX_N;     for (int i = 0; i < n; i++) {       cin >> a[i];       r = min(r, a[i]);     }     r++;     int l = 0;     while (l < r) {       int m = l + (r - l) / 2;       if (check(m)) {         l = m + 1;       } else {         r = m;       }     }     if (l == 0 || !check(l - 1)) {       l = 1;       dummy();     }     cout << l - 1 << endl << ans.size() << endl;     for (auto p : ans) {       for (int i = 0; i < n; i++) {         bool ok = 0;         for (int x : p) {           ok |= x == i;         }         cout << (ok ?  1  :  0 );       }       cout << endl;     }     return 0;   }   