func_code_string: #include <bits/stdc++.h>   using namespace std;   int digitMask = 0;   int c[20];   int factorize(int n, int pos) {     int curPos = pos;     c[curPos] = 0;     while (n > 0) c[curPos++] = n % 10, n /= 10;     curPos--;     curPos = max(curPos, pos);     for (int i = pos, j = curPos; i < j; i++, j--) swap(c[i], c[j]);     return curPos;   }   int parsenum(int n) {     if (c[n - 1] == 0 && n != 1) return -1;     int ans = 0;     for (int i = n - 1; i >= 0; i--) ans *= 10, ans += c[i];     return ans;   }   bool good(int i, int j) {     int ii = i, jj = j;     while (i < j)       if (c[i] != c[j])         return false;       else         i++, j--;     int mask = 0;     for (int we = ii; we <= jj; we++) mask |= (1 << c[we]);     return mask == digitMask;   }   bool nogood(int i, int j) {     for (int we = i; we <= j; we++)       if ((digitMask & (1 << c[we])) == 0) return true;     return false;   }   const int maxn = 1000000;   int ans1[maxn], ans2[maxn], ans3[maxn], ans4[maxn];   int ansCount;   int main() {     int n;     cin >> n;     if (n >= 7) {       cout << 0;       return 0;     }     for (int i = 0; i < n; i++) {       int c;       cin >> c;       digitMask |= (1 << c);     }     for (int a = 0; a < 256; a++) {       int pos1 = factorize(a, 0);       for (int b = 0; b < 256; b++) {         int pos2 = factorize(b, pos1 + 1);         if (nogood(0, pos2)) continue;         for (int c = 0; c < 256; c++) {           int pos3 = factorize(c, pos2 + 1);           if (nogood(0, pos3)) continue;           for (int count = 1; count <= 3; count++) {             int last = parsenum(count);             if (last == -1) continue;             if (last >= 256) continue;             int pos = factorize(last, pos3 + 1);             if (good(0, pos)) {               ans1[ansCount] = a;               ans2[ansCount] = b;               ans3[ansCount] = c;               ans4[ansCount] = last;               ansCount++;             }           }         }       }     }     cout << ansCount << endl;     for (int i = 0; i < ansCount; i++) {       cout << ans1[i] <<  .  << ans2[i] <<  .  << ans3[i] <<  .  << ans4[i]            << endl;     }     return 0;   }   