思路:
先构造一个递减的前缀和数列,因为要k个正数,所以则要k个逆序对即可。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--){
int n,k;
cin>>n>>k;
int a[35];
for (int i=0;i<=n;i++){
a[i]=n-i+1;//逆序数组
}
for (int i=0;i<=n;i++){
for (int j=i+1;j<=n;j++){
if(k>0){
k--;
swap(a[i],a[j]);//k对逆序对。
}
}
}
for (int i=1;i<=n;i++){
cout<<a[i]-a[i-1]<<" ";
}
cout<<endl;
}
}