https://codeforces.com/problemset/problem/1352/B
思路: 先判断n能否被k整除,如果不能,再判断k个数中其中一个加上n%k,k个数的奇偶性是否相同,如果不相同就把k-1个数各减1加到最后一个数上 奇偶性再不同就没有办法啦
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
int t;
cin>>t;
while(t--){
int n,k;
cin>>n>>k;
int p=n/k,q=n%k;
if(p==0){///!!!!!
cout<<"NO"<<'\n';
continue;
}
// cout<<p<<' '<<q<<'\n';
if(!q){
int u=0;
cout<<"YES"<<'\n';
for(int i=0;i<k;i++) {
if(!u)cout<<p,u=1;
else cout<<' '<<p;
}
cout<<'\n';
}
else {
if((p+q)%2==p%2){
cout<<"YES"<<'\n';
for(int i=1;i<k;i++) cout<<p<<' ';
cout<<p+q<<'\n';
}
else {
p-=1,q+=k;
if(p==0){
cout<<"NO"<<'\n';
continue;
}
if(p%2==(p+q)%2){
cout<<"YES"<<'\n';
for(int i=1;i<k;i++) cout<<p<<' ';
cout<<p+q<<'\n';
}
else cout<<"NO"<<'\n';
// cout<<p<<' '<<q<<'\n';
}
}
}
return 0;
}