小蓝的决议
问题描述
小蓝是蓝桥城的议会成员,他们正在讨论一项重要的决议。议会中共有 N 名成员,其中X 名成员赞成这项决议,其余的成员则反对。
根据蓝桥城宪法,只有当议会中达到一半以上的成员赞成决议时,决议才会通过。
现在,小蓝需要你的帮助来判断这项决议是否通过。
输入格式
第一行输入一个整数 T,代表测试用例的数量。
接下来的每一行代表一个测试用例,每行包含两个用空格分隔的整数 N 和 X,分别表示议会中的成员总数和赞成决议的成员数。
数据范围保证:
1≤T≤5000,1≤N≤100,0≤X≤N。
输出格式
对于每个测试用例,如果决议通过,请输出 “YES”;否则,请输出 “NO”。
样例输入
4
12 6
9 4
9 5
12 0
样例输出
YES
NO
YES
NO
说明
测试用例 1: 由于半数成员赞成决议,因此决议通过,输出 “YES”。
测试用例 2: 由于赞成决议的成员少于半数,因此决议未通过,输出 “NO”。
测试用例 3: 由于超过半数的成员赞成决议,因此决议通过,输出 “YES”。
测试用例 4: 由于所有成员都反对决议,决议未通过,输出 “NO”。
模拟
这段代码是一个C++程序,用于解决上述问题。下面是对代码的详细注释:
// 引入C++标准库,用于输入输出操作
#include <bits/stdc++.h>
// 使用标准命名空间,简化代码中的std::前缀
using namespace std;
// 主函数,程序的入口点
int main()
{
// 定义一个整型变量n,用于存储测试用例的数量
int n;
// 从标准输入读取测试用例的数量
cin >> n;
// 使用while循环处理每一个测试用例
while (n--)
{
// 定义两个整型变量a和b,分别用于存储议会成员总数和赞成决议的成员数
int a, b;
// 从标准输入读取一个测试用例的两个整数
cin >> a >> b;
// 判断议会成员总数a是否为奇数
if (a % 2 == 1)
{
// 如果是奇数,计算半数加一的结果,存储在整型变量z中
int z = a / 2 + 1;
// 判断赞成决议的成员数b是否大于等于z
if (b >= z)
// 如果是,输出"YES"
printf("YES\n");
else
// 如果不是,输出"NO"
printf("NO\n");
}
else
{
// 如果议会成员总数a是偶数,直接计算半数的结果,存储在整型变量z中
int z = a / 2;
// 判断赞成决议的成员数b是否大于等于z
if (b >= z)
// 如果是,输出"YES"
printf("YES\n");
else
// 如果不是,输出"NO"
printf("NO\n");
}
}
// 程序结束,返回0表示成功
return 0;
}
这段代码首先通过cin
读取测试用例的数量,然后对于每个测试用例,读取议会成员总数和赞成决议的成员数。接着,程序会判断议会成员总数是奇数还是偶数,并计算出通过决议所需的最小赞成票数。最后,程序会根据实际的赞成票数与所需赞成票数进行比较,并输出相应的结果"YES"或"NO"。