func_code_string: #include <bits/stdc++.h>   using namespace std;   int main() {     ios::sync_with_stdio(0);     ;     int n;     bool allSame = true;     cin >> n;     int a[n];     for (int i = 0; i < n; i++) {       cin >> a[i];       if (i > 0 and a[i] != a[i - 1]) allSame = false;     }     sort(a, a + n);     if (n == 1) {       cout <<  -1 ;       return 0;     }     if (allSame) {       cout <<  1 n  << a[0];       return 0;     }     if (n == 2) {       if ((a[0] + a[1]) % 2 != 0)         cout <<  2 n  << a[0] - (a[1] - a[0]) <<     << a[1] + (a[1] - a[0]);       else         cout <<  3 n               << a[0] - (a[1] - a[0]) <<     << (a[0] + a[1]) / 2 <<                  << a[1] + (a[1] - a[0]);       return 0;     }     if (n == 3) {       int d1 = a[1] - a[0], d2 = a[2] - a[1];       if (d1 == d2) {         cout <<  2 n  << a[0] - d1 <<     << a[2] + d1;         return 0;       } else if (d1 == 2 * d2) {         cout <<  1 n  << a[0] + d1 / 2;         return 0;       } else if (2 * d1 == d2) {         cout <<  1 n  << a[1] + d2 / 2;         return 0;       }     }     set<int> uniq;     multiset<int> freq;     for (int i = 1; i < n; i++) {       uniq.insert(a[i] - a[i - 1]);       freq.insert(a[i] - a[i - 1]);     }     if (uniq.size() == 1) {       cout <<  2 n  << a[0] - *uniq.begin() <<     << a[n - 1] + *uniq.begin();       return 0;     } else if (uniq.size() == 2) {       int d1 = *uniq.begin();       int f1 = freq.erase(d1);       uniq.erase(d1);       int d2 = *uniq.begin();       int f2 = freq.erase(d2);       int d = f1 > f2 ? d1 : d2;       if (f1 > 1 and f2 > 1) {         cout <<  0 ;         return 0;       }       if (d1 == 0 or d2 == 0) {         cout <<  0 ;         return 0;       }       for (int i = 1; i < n; i++) {         if (a[i] - a[i - 1] == 2 * d) {           cout <<  1 n  << a[i - 1] + d;           return 0;         }       }     }     cout <<  0 ;   }   