func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 1500010;   int n, cnt, ans;   int a[N], bug[N], v[N];   map<pair<int, int>, int> vis;   bool check(int i) {     if (!(i & 1)) {       if (i < n)         return a[i - 1] < a[i] && a[i + 1] < a[i];       else         return a[i - 1] < a[i];     } else if (i > 1 && i < n)       return a[i - 1] > a[i] && a[i + 1] > a[i];     else if (i == 1)       return a[i + 1] > a[i];     else       return a[i - 1] > a[i];   }   int main() {     scanf( %d , &n);     for (int i = 1; i <= n; i++) scanf( %d , &a[i]);     for (int i = 1; i <= n; i += 2) {       if (i == 1 && a[i] >= a[i + 1]) {         if (!v[i]) bug[++cnt] = i, v[i] = 1;         if (!v[i + 1]) bug[++cnt] = i + 1, v[i + 1] = 1;       } else if (i == n && a[i] >= a[i - 1]) {         if (!v[i]) bug[++cnt] = i, v[i] = 1;         if (!v[i - 1]) bug[++cnt] = i - 1, v[i - 1] = 1;       } else if (i > 1 && i < n) {         if (a[i] >= a[i + 1] && a[i] >= a[i - 1]) {           if (!v[i]) bug[++cnt] = i, v[i] = 1;           if (!v[i + 1]) bug[++cnt] = i + 1, v[i + 1] = 1;           if (!v[i - 1]) bug[++cnt] = i - 1, v[i - 1] = 1;         } else {           if (a[i] >= a[i + 1]) {             if (!v[i]) bug[++cnt] = i, v[i] = 1;             if (!v[i + 1]) bug[++cnt] = i + 1, v[i + 1] = 1;           }           if (a[i] >= a[i - 1]) {             if (!v[i]) bug[++cnt] = i, v[i] = 1;             if (!v[i - 1]) bug[++cnt] = i - 1, v[i - 1] = 1;           }         }       }     }     if (cnt > 6) {       puts( 0 );       return 0;     }     for (int i = 1; i <= cnt; i++)       for (int j = 1; j <= n; j++) {         if (a[j] == a[bug[i]]) continue;         swap(a[j], a[bug[i]]);         bool fl = 1;         for (int k = 1; k <= cnt; k++)           if (!check(bug[k])) fl = 0;         if (!check(j)) fl = 0;         if (fl) {           pair<int, int> p = make_pair(min(bug[i], j), max(bug[i], j));           if (!vis[p]) {             ans++;             vis[p] = 1;           }         }         swap(a[j], a[bug[i]]);       }     printf( %d n , ans);     return 0;   }   