func_code_string: #include <bits/stdc++.h>   struct Swap {     int i;     int j;   };   std::vector<Swap> swaps;   void solve4(int a, int b, int c, int d, bool firstLast) {     if (firstLast) swaps.push_back(Swap{a, b});     swaps.push_back(Swap{a, c});     swaps.push_back(Swap{b, d});     swaps.push_back(Swap{a, d});     swaps.push_back(Swap{b, c});     if (firstLast) swaps.push_back(Swap{c, d});   }   void solve5(int a, int b, int c, int d, int e, bool firstLast) {     if (firstLast) {       swaps.push_back(Swap{a, b});       swaps.push_back(Swap{a, c});       swaps.push_back(Swap{b, c});     }     swaps.push_back(Swap{b, e});     swaps.push_back(Swap{a, d});     swaps.push_back(Swap{c, e});     swaps.push_back(Swap{c, d});     swaps.push_back(Swap{a, e});     swaps.push_back(Swap{b, d});     if (firstLast) swaps.push_back(Swap{d, e});   }   int main(void) {     int n;     scanf( %d , &n);     if (n == 1) {       printf( YES n );     } else if (n % 4 <= 1) {       if (n % 4 == 0) {         int k = n / 4;         for (int i = 0; i < k; i++) {           solve4(4 * i + 1, 4 * i + 2, 4 * i + 3, 4 * i + 4, true);         }         for (int i = 0; i + 1 < k; i++) {           for (int j = i + 1; j < k; j++) {             solve4(4 * i + 1, 4 * i + 2, 4 * j + 1, 4 * j + 2, false);             solve4(4 * i + 1, 4 * i + 2, 4 * j + 3, 4 * j + 4, false);             solve4(4 * i + 3, 4 * i + 4, 4 * j + 1, 4 * j + 2, false);             solve4(4 * i + 3, 4 * i + 4, 4 * j + 3, 4 * j + 4, false);           }         }       } else {         int k = (n - 5) / 4;         solve5(1, 2, 3, 4, 5, true);         for (int i = 0; i < k; i++) {           solve4(5 + 4 * i + 1, 5 + 4 * i + 2, 5 + 4 * i + 3, 5 + 4 * i + 4,                  true);         }         for (int i = 0; i < k; i++) {           solve5(1, 2, 3, 5 + 4 * i + 1, 5 + 4 * i + 2, false);           solve5(1, 2, 3, 5 + 4 * i + 3, 5 + 4 * i + 4, false);           solve4(4, 5, 5 + 4 * i + 1, 5 + 4 * i + 2, false);           solve4(4, 5, 5 + 4 * i + 3, 5 + 4 * i + 4, false);         }         for (int i = 0; i + 1 < k; i++) {           for (int j = i + 1; j < k; j++) {             solve4(5 + 4 * i + 1, 5 + 4 * i + 2, 5 + 4 * j + 1, 5 + 4 * j + 2,                    false);             solve4(5 + 4 * i + 1, 5 + 4 * i + 2, 5 + 4 * j + 3, 5 + 4 * j + 4,                    false);             solve4(5 + 4 * i + 3, 5 + 4 * i + 4, 5 + 4 * j + 1, 5 + 4 * j + 2,                    false);             solve4(5 + 4 * i + 3, 5 + 4 * i + 4, 5 + 4 * j + 3, 5 + 4 * j + 4,                    false);           }         }       }       printf( YES n );       for (Swap swap : swaps) printf( %d %d n , swap.i, swap.j);       printf(  n );     } else {       printf( NO n );     }     return 0;   }   