func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 2005;   int n, a[N], s1[N], s2[N], ans = 0;   void judge(int x, int y, int mid) {     int tmp = 0;     if (x == y)       tmp = s1[mid] + s2[n] - s2[mid];     else       tmp = s1[x - 1] + s2[n] - s2[y] + s2[mid] - s2[x - 1] + s1[y] - s1[mid];     ans = max(ans, tmp);   }   int main() {     scanf( %d , &n);     int i, j, x, y;     for (i = 1; i <= n; i++) scanf( %d , &a[i]);     for (i = 1; i <= n; i++) {       s1[i] = s1[i - 1];       s2[i] = s2[i - 1];       if (a[i] == 1)         s1[i]++;       else         s2[i]++;     }     int mx, val, mid;     for (x = 1; x <= n; x++) {       if (a[x] == 1)         val = -1;       else         val = 1;       mid = x;       mx = val;       judge(x, x, x);       judge(x, x, x - 1);       for (y = x + 1; y <= n; y++) {         if (a[y] == 1)           val--;         else           val++;         if (val > mx) mx = val, mid = y;         judge(x, y, mid);       }     }     printf( %d , ans);     return 0;   }   