func_code_string: #include <bits/stdc++.h>   using namespace std;   bool Geo(vector<int>& a) {     int n = a.size();     if (n == 1) return true;     if (n == 2) {       if (a[0] == 0 && a[1] != 0) return false;       return true;     }     if (a[1] == 0) {       for (int i = 2; i < n; ++i)         if (a[i] != 0) return false;       return true;     }     if (a[0] == 0) return false;     for (int i = 2; i < n; ++i)       if (a[i] * a[0] != a[i - 1] * a[1]) return false;     return true;   }   bool Spr(vector<int>& a, int nr) {     vector<int> b;     for (int i = 0; i < a.size(); ++i)       if (i != nr) b.push_back(a[i]);     return Geo(b);   }   int main() {     ios_base::sync_with_stdio(0);     int n;     cin >> n;     vector<int> a(n);     for (int i = 0; i < n; ++i) cin >> a[i];     if (Geo(a)) {       cout <<  0 ;       return 0;     }     if (n == 2) {       cout <<  1 ;       return 0;     }     int odp = 2;     vector<bool> pref(n, false), suf(n, false);     if (a[0] == 0 && a[1] == 0) {       pref[0] = true;       for (int i = 1; i < n; ++i)         if (pref[i - 1] && a[i] == 0) pref[i] = true;       if (a[n - 1] == 0) suf[n - 1] = true;       for (int i = n - 2; i >= 0; --i)         if (suf[i + 1] && a[i] == 0) suf[i] = true;     }     if (a[0] != 0 && a[1] == 0) {       pref[0] = true;       for (int i = 1; i < n; ++i)         if (pref[i - 1] && a[i] == 0) pref[i] = true;       if (a[n - 1] == 0) suf[n - 1] = true;       for (int i = n - 2; i >= 0; --i)         if (suf[i + 1] && a[i] == 0) suf[i] = true;     }     if (a[0] != 0 && a[1] != 0) {       pref[0] = true;       pref[1] = true;       for (int i = 2; i < n; ++i)         if (pref[i - 1] && a[i] * a[0] == a[i - 1] * a[1]) pref[i] = true;       suf[n - 1] = true;       for (int i = n - 2; i >= 0; --i)         if (suf[i + 1] && a[i] * a[1] == a[i + 1] * a[0]) suf[i] = true;     }     for (int i = 2; i < n - 1; ++i)       if (pref[i - 1] && suf[i + 1] && a[i + 1] * a[0] == a[i - 1] * a[1])         odp = 1;     if (Spr(a, 0) || Spr(a, 1) || Spr(a, n - 1)) odp = 1;     cout << odp;     return 0;   }   