题目大意
和C1唯一的区别是k现在不只是3,还可以大于3
题解
我们将n分出来k-3个1,然后问题又转换成了C1
#include<cstdio>
int main(){
long long T,n,k;
scanf("%lld",&T);
while(T--){
int flag=1;
scanf("%lld%lld",&n,&k);
while(k>3){
if(flag){
printf("1");
flag=0;
}
else{
printf(" 1");
}
n--;
k--;
}
if(!flag){
printf(" ");
}
if(n%2){
printf("1 %lld %lld\n",n/2,n/2);
n--;
}else{
if(n/2%2){
n-=2;
printf("2 %lld %lld\n",n/2,n/2);
}else{
printf("%lld %lld %lld\n",n/2,n/4,n/4);
}
}
}
}