原题链接:Problem - B - Codeforceshttps://codeforces.com/contest/1352/problem/B
#include <iostream>
using namespace std;
void solve(){
int n, k;
cin >> n >> k;
//把n拆成k-1个2后 判断剩余数n-(k-1)*2是否为正偶数满足题意
int la1 = n - (k - 1)* 2;
if(la1 > 0 && la1 % 2 == 0)
{
cout << "YES\n";
for(int i = 0; i < k - 1; i ++) cout << "2 ";
cout << la1 << '\n';
return;
}
//把n拆成k-1个1后 判断剩余数n-(k-1)是否为正奇数满足题意
int la2 = n - (k - 1);
if(la2 > 0 && la2 % 2)
{
cout << "YES\n";
for(int i = 0; i < k - 1; i ++) cout << "1 ";
cout << la2 << '\n';
return;
}
//不满足上述条件 则NO
cout << "NO\n";
return;
}
int main()
{
ios::sync_with_stdio(false);
int t;
cin >> t;
while(t --)
{
solve();
}
return 0;
}