func_code_string: #include <bits/stdc++.h>   using namespace std;   int a[212345];   int cnts[212345];   int lft[212345];   int rght[212345];   int cumsum[212345];   int get_right_ans(int i) { return cumsum[rght[i]] - cumsum[i]; }   int get_left_ans(int i) {     if (lft[i]) return cumsum[i - 1] - cumsum[lft[i] - 1];     return cumsum[i - 1];   }   void print_ans(int fin_ans, int slope) {     if (cnts[fin_ans] < 1) {       return;     }     if (cnts[fin_ans] < 2) {       cnts[fin_ans] -= 1;       printf( %d  , fin_ans);       return;     }     printf( %d  , fin_ans);     cnts[fin_ans] -= 1;     print_ans(fin_ans + slope, slope);     while (cnts[fin_ans]) {       printf( %d  , fin_ans);       cnts[fin_ans]--;     }   }   int main() {     int n, tmp, fnd;     scanf( %d , &n);     ;     for (int i = 0; i < n; i++) {       scanf( %d , &a[i]);       ;       cnts[a[i]] += 1;     }     int lst_val = -1;     for (int i = 0; i < 212345; i++) {       lft[i] = lst_val;       if (cnts[i] < 2) lst_val = i;     }     lst_val = 212345;     for (int i = 212345 - 1; i >= 0; i--) {       rght[i] = lst_val;       if (cnts[i] < 2) lst_val = i;     }     for (int i = 1; i < 212345; i++) cumsum[i] = cumsum[i - 1] + cnts[i];     int maxi = 0;     int fin_ans = -1;     for (int i = 1; i < 212345; i++) {       if (cnts[i] == 1) {         if (1 + max(get_right_ans(i), get_left_ans(i)) > maxi) {           maxi = max(maxi, 1 + max(get_right_ans(i), get_left_ans(i)));           fin_ans = i;         }       } else if (cnts[i] > 1) {         if (cnts[i] + get_right_ans(i) + get_left_ans(i) > maxi) {           maxi = max(maxi, cnts[i] + get_right_ans(i) + get_left_ans(i));           fin_ans = i;         }       }     }     printf( %d n , maxi);     if (cnts[fin_ans] == 1) {       printf( %d  , fin_ans);       if (get_left_ans(fin_ans) > get_right_ans(fin_ans))         print_ans(fin_ans - 1, -1);       else         print_ans(fin_ans + 1, +1);     } else {       if (get_left_ans(fin_ans)) {         printf( %d  , fin_ans);         print_ans(fin_ans - 1, -1);         cnts[fin_ans] -= 1;       }       if (get_right_ans(fin_ans)) {         printf( %d  , fin_ans);         print_ans(fin_ans + 1, 1);         cnts[fin_ans] -= 1;       }       while (cnts[fin_ans]) {         printf( %d  , fin_ans);         cnts[fin_ans]--;       }     }   }   