AT_arc157_a 题解
思路
看数据范围时能发现,这 \(N\) 啥用也没有,因为 \(A+B+C+D=N-1\)。
首先,\(B\),\(D\) 为 \(0\) 且 \(A\),\(C\) 为 \(0\) 的情况是不可能有的,因为既然有 XX 和 YY 字符串,那么一定会至少组成一个 XY 或 YX,输出 No;
然后,\(\left|B-D\right|\le1\) 才可以,因为构造两个 XY一定会出现一个 YX,YX 同理,当两个 \(\left|B-D\right|>1\) 时,XY 或 YX 一定会超过所需的值,输出 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;
}

浙公网安备 33010602011771号