func_code_string: #include <bits/stdc++.h>   using namespace std;   const double PI = acos(-1.0);   template <class T>   inline T SQR(T a) {     return a * a;   }   int C[100001][3];   bool can(int *A, int n, int k) {     int pos = k;     for (int i = (0), ei = (k); i < ei; i++) C[i][0] = A[i];     int cnt = 0;     while (pos < n && cnt < k) {       if (A[pos] < C[cnt][0]) C[cnt++][1] = A[pos];       pos++;     }     if (cnt != k) return false;     cnt = 0;     while (pos < n && cnt < k) {       if (A[pos] < C[cnt][1]) C[cnt++][2] = A[pos];       pos++;     }     return cnt == k;   }   int main() {     int n;     int A[100001];     cin >> n;     for (int i = (0), ei = (n); i < ei; i++) scanf( %d , A + i);     sort(A, A + n, greater<int>());     int l = 0, r = n / 3;     int ans = 0;     while (l <= r) {       int c = (l + r) >> 1;       if (can(A, n, c)) {         l = c + 1;         ans = c;       } else         r = c - 1;     }     can(A, n, ans);     printf( %d n , ans);     for (int i = (0), ei = (ans); i < ei; i++)       printf( %d %d %d n , C[i][0], C[i][1], C[i][2]);     return 0;   }   