# CodeForce -1355 Game With Array 【 思维 + 构造 】题解

### 1.题目

Petya and Vasya are competing with each other in a new interesting game as they always do.
At the beginning of the game Petya has to come up with an array of N positive integers. Sum of all elements in his array should be equal to S. Then Petya has to select an integer K such that 0≤K≤S.
In order to win, Vasya has to find a non-empty subarray in Petya’s array such that the sum of all selected elements equals to either K or S−K. Otherwise Vasya loses.
You are given integers N and S. You should determine if Petya can win, considering Vasya plays optimally. If Petya can win, help him to do that.
Input
The first line contains two integers N and S (1≤N≤S≤106) — the required length of the array and the required sum of its elements.
Output
If Petya can win, print “YES” (without quotes) in the first line. Then print Petya’s array in the second line. The array should contain N positive integers with sum equal to S. In the third line print K. If there are many correct answers, you can print any of them.
If Petya can’t win, print “NO” (without quotes).
You can print each letter in any register (lowercase or uppercase).
Examples
Input
1 4
Output
YES
4
2
Input
3 4
Output
NO
Input
3 8
Output
YES
2 1 5
4

### 2.思路

a[1]=1,a[2]=1,a[3]=1…a[n-1]=1,a[n]=s-(n-1）

### 3.代码

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int n,s,k;
cin>>n>>s;
k=n;
if(s-n+1<=k)  puts("NO");
else
{
puts("YES");
for(int i=1;i<=n-1;i++)
{
cout<<'1'<<' ';
}
cout<<s-n+1<<endl;
cout<<k<<endl;
}
return 0;
}

• 点赞
• 评论
• 分享
x

海报分享

扫一扫，分享海报

• 收藏
• 手机看

分享到微信朋友圈

x

扫一扫，手机阅读

• 打赏

打赏

林深时不见鹿

你的鼓励将是我创作的最大动力

C币 余额
2C币 4C币 6C币 10C币 20C币 50C币
• 一键三连

点赞Mark关注该博主, 随时了解TA的最新博文

12-20 378
09-27 708
04-10 26