func_code_string: #include <bits/stdc++.h>   using namespace std;   const double eps = 0.000000001;   double x[200000];   int n;   void solve() {     if (abs(x[1]) < eps) {       int p = 0;       for (int i = 1; i < n; i++)         if (abs(x[i]) > eps) p++;       if (p == 0) {         printf( 1 n );         exit(0);       }       return;     }     double q = x[2] / x[1];     for (int i = 3; i < n; i++) {       if (abs(x[i]) < eps) {         if (abs(q) > eps) return;       } else if (abs(x[i] / x[i - 1] - q) > eps)         return;     }     printf( 1 n );     exit(0);   }   int main() {     cin >> n;     for (int i = 0; i < n; i++) scanf( %lf , &x[i]);     if (abs(x[0]) < eps) {       int p = 0;       for (int i = 0; i < n; i++)         if (abs(x[i]) > eps) p++;       if (p < 2) {         printf( %d n , p);         return 0;       }       solve();       printf( 2 n );       return 0;     }     if (n < 3) {       printf( 0 n );       return 0;     }     double q = x[1] / x[0];     int p = 0;     for (int i = 2; i < n; i++) {       if (abs(x[i]) < eps) {         if (abs(q) > eps) {           if (p == 1) {             p = 2;             break;           }           p = 1;           x[i] = x[i - 1];         }       } else if (abs(x[i] / x[i - 1] - q) > eps) {         if (p == 1) {           p = 2;           break;         }         p = 1;         if (abs(x[i] - x[i - 1]) > eps && i != n - 1) {           if (abs(x[i + 1] / x[i - 1] - q) < eps)             x[i] = x[i - 1];           else if (abs(x[i + 1] / x[i] - q) > eps) {             p = 2;             break;           }         }       }     }     if (p < 2) {       printf( %d n , p);       return 0;     }     solve();     swap(x[0], x[1]);     solve();     printf( 2 n );     return 0;   }   