牵扯到一组元素的比较时候,可以尽量将对两个或多个元素的操作或比较转化为对一个元素的操作

给定一个长度为 nn 的数组 a1,a2,,an,其中 ai=i

现在,请你选择一个整数 mm,并对该数组进行 mm 次操作。

对于第 i 次操作(i 从 1 开始计数),你需要选定其中一个元素,并将选定元素以外的其他所有元素都增加 i。

你的目标是在 mm 次操作结束后,数组中各个元素的值都相等。

m 不得超过 1000

请你输出具体合理方案。

输入格式

第一行包含整数 T,表示共有 T 组测试数据。

每组数据占一行,包含一个整数 n。

输出格式

每组数据输出占两行。

第一行输出操作次数 m

第二行输出 m 个整数 p1,p2,,pn其中 pipi 表示第 i 次操作选中的元素的编号。

保证一定有解。

输出任意合理方案均可。

数据范围

本题共两个测试点。
小测试点,如样例所示。
大测试点满足:1T1002n100

输入样例:

2
2
3

输出样例:

1
2
5
3 3 3 1 2

对其余数操作,相当于对这个选择的数反操作


 
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
    int T;
    cin>>T;
    while(T--){
        int n;
        cin>>n;
        cout<<n-1<<endl;
        for(int i=2;i<=n;i++){
            cout<<i<<' ';
        }
        cout<<endl;
    }
    return 0;
}