AT_arc157_a 题解

发布时间 2023-07-26 08:08:27作者: zhuangjihong

思路

看数据范围时能发现,这 \(N\) 啥用也没有,因为 \(A+B+C+D=N-1\)

首先,\(B\)\(D\)\(0\)\(A\)\(C\)\(0\) 的情况是不可能有的,因为既然有 XXYY 字符串,那么一定会至少组成一个 XYYX,输出 No

然后,\(\left|B-D\right|\le1\) 才可以,因为构造两个 XY一定会出现一个 YXYX 同理,当两个 \(\left|B-D\right|>1\) 时,XYYX 一定会超过所需的值,输出 No

其余情况输出 Yes 就可以了。

代码

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	int n,a,b,c,d;
	cin>>n>>a>>b>>c>>d;
	if(abs(b-c)>=2||(b==0&&c==0&&a>0&&d>0)) cout<<"No";
	else cout<<"Yes";
	return 0;
}