fork download
  1.  
  2.  
  3. #include <bits/stdc++.h>
  4. using namespace std;
  5. #define io_speed_up ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
  6. template<typename T>void rd(T&x){int f=0,c;while(!isdigit(c=getchar()))f^=!(c^45);x=(c&15);while(isdigit(c=getchar()))x=x*10+(c&15);if(f)x=-x;} //读整型
  7. template<typename T>void pt(T x,int c=10){if(x<0)putchar('-'),x=-x;if(x>9)pt(x/10,-1);putchar(x%10+48);if(c!=-1)putchar(c);}
  8. template<typename T>void umax(T&x,const T&y){if(x<y)x=y;}
  9. template<typename T>void umin(T&x,const T&y){if(x>y)x=y;}
  10. #define rep(i,a,b) for (int i=a;i<=b;i++)
  11. #define per(i,a,b) for (int i=a;i>=b;i--)
  12. #define for1(i,n) for (int i=1;i<=n;i++)
  13. #define for0(i,n) for (int i=0;i<n;i++)
  14. #define ms(a,b) memset(a,b,sizeof a)
  15. #define all(n) (n).begin(), (n).end()
  16. #define sz(x) (int)x.size()
  17. #define fi first
  18. #define se second
  19. using ll = long long;
  20. using ld = long double;
  21. using pii = pair<int,int>;
  22. using pll = pair<long,long>;
  23. const int inf = 0x3f3f3f3f;
  24. const int maxn = 1e5+5;
  25. const int mod = 1e9+7;
  26. int n,a[maxn];
  27. int main()
  28. {
  29. io_speed_up;
  30. int T;
  31. cin>>T;
  32. while(T--) {
  33. cin>>n;
  34. int k = n/2; //[2,k] -> n , [k+1,n-1] -> 1
  35. ll sum = 1LL*(n-1)*(n-1);
  36. int pre = n;
  37. rep(i,2,k) {
  38. sum += 1LL*(n-i)*(n-i);
  39. a[pre] = i;
  40. pre = i;
  41. }
  42. a[pre] = 1;
  43. pre = 1;
  44. rep(i,k+1,n-1) {
  45. sum += 1LL*(i-1)*(i-1);
  46. a[pre] = i;
  47. pre = i;
  48. }
  49. a[pre] = n;
  50. cout<<sum<<"\n";
  51. rep(i,1,n) cout<<a[i]<<" \n"[i==n];
  52.  
  53. cout<<n-1<<"\n";
  54. rep(i,2,k) cout<<i<<" "<<n<<"\n";
  55. rep(i,k+1,n-1) cout<<i<<" "<<1<<"\n";
  56. cout<<1<<" "<<n<<"\n";
  57.  
  58. }
  59. return 0;
  60. }
  61.  
Success #stdin #stdout 0s 4948KB
stdin
1
6
stdout
75
4 3 1 5 6 2
5
2 6
3 6
4 1
5 1
1 6