本题是昨天ARC153的线上赛太不友好了,随手签到了上一轮线上赛的A题,B题魔咒,我一定会打破的。
L个椅子排成有一列,现在有N对人将依次参观和坐下。然而,每组是一人或2个人组成,第i对由a
人访问。同时,访问的总人数等于L。
每一对都随机选择椅子中尚未被人占据的部分,在这一排椅子中所有成员都可以连续坐下,并占据这部分椅子。然而,如果没有地方可以让这对中的每个人连续坐下,他们就会在无法坐下的情况下离开。
在这一点上,判断你是否可以肯定地说,所有N对都可以坐下来,没有人离开。
输入通过标准输入进行,格式如下。
N L a
a
… a
如果你能肯定地说 "所有N对都能坐下来,没有人离开",则输出 "Yes",否则输出 "No"。
2 4
2 2
No
假设椅子从左到右编号为1、2、3、4。如果第一对人坐在2号和3号椅子上,后来的两个人就不能坐下来离开。因此,回答 "No",因为他们可能无法全部坐下。
3 4
1 2 1
Yes
可以考虑任何坐姿安排,以确保每个人都坐在椅子上。
#include <bits/stdc++.h>
using namespace std;
#define endl '\n';
void best_coder() {
int n, l;
cin >> n >> l;
for (int i = 0; i < n; ++i) {
int a;
cin >> a;
if (a == 2 && l < a) {
cout << "No";
return;
}
l -= a + 1;
}
cout << "Yes";
}
void happy_coder() {
}
int main() {
// 提升cin、cout效率
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
// 小码匠
best_coder();
// 最优解
// happy_coder();
// 返回
return 0;
}