题目来源
https://codeforces.com/problemset/problem/1352/B
题目描述
样例展示
AC题解
一开始看到样例测试的时候有被吓到,但想通了其实这道题很简单,我们只需要输出k-1个1和一个奇数或者输出k-1个2和一个偶数即可。
先判断k-1个1和一个奇数能不能为n或者k-1个2和一个偶数能不能为n
#include<iostream>
using namespace std;
int main()
{
int t;
cin >> t;
while (t--)
{
int n, k;
cin >> n >> k;
int t = k - 1;
int sum1 = n - t, sum2 = n - 2 * t;
if (sum2 > 0 && sum2 % 2 == 0)
{
cout << "YES" << endl;
for (int i = 1; i <= t; i++)
{
cout << 2 << " ";
}
cout << sum2 << endl;
}
else if (sum1 > 0 && sum1 % 2 == 1)
{
cout << "YES" << endl;
for (int i = 1; i <= t; i++)
{
cout << 1 << " ";
}
cout << sum1 << endl;
}
else
{
cout << "NO" << endl;
}
}
}