ZHTBWYY已经上小学一年级了,他的数学老师正在讲授数学计算式中括号对计算优先结合性的作用。聪明的他很快就掌握了括号在数学式中的运用技巧。现在他将所有习题任务完成后,自己在草稿纸上开始搞研究,他在纸上重新画出了几种括号的样式,并把他们定义成四种新的符号,具体如下,一共四种样式新符号。
符号一: ((
符号二: ))
符号三: ()
符号四: )(
虽然每个新符号包括两个字符,但他们作为一个整体看待!现在给定每一种符号的数量,ZHTBWYY想将这些数量的新符号重新排列在一行上,然后使得所有的符号包含的括号都能按照数学上的括号匹配化简,从而都能化简掉,在括号化简的时候是可以分开化简的!
现在需要你写程序帮他判断这个问题。
注意:同一种符号之内的两个括号符号的相对位置不能变化,符号与符号之间的相对位置可以重新排列。
输入格式
按顺序输入四种新符号的个数,空格分隔。每一种符号的最大个数不超过109
输出格式
如果四种新符号经过重新排列后,使得所有括号都能化简掉,输出 YES,否则输出 NO。
输出完成后需要输出回车换行。
输入样例
0 0 1 1
1 1 1 1
输出样例
NO
YES
数据范围与提示
第一个样例只有 () 和 )( ,无论这两个新的符号怎么排列,都不可能完全化简掉
第二个样例每种新的符号各一个,可以排列成 (( )( )) () ,就可以都按规则化简掉了。
你题目的解答代码如下:
#include<iostream>
using namespace std;
int main()
{
int a,b,c,d;
while (cin >> a >> b >> c >> d)
{
if (a!=b || (d>0 && a==0))
cout << "NO" << endl;
else
cout << "YES" << endl;
}
return 0;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!