列表

详情


NC54758. 碰碰乐

描述

Garrett学长最近迷上了这样一款游戏叫做”碰碰乐“,游戏规则如下:有三种形状的物体,分别是三角形,圆形和正方形,分别都有若干个,其中两个不同形状的物体碰撞在一起就会形成两个第三种形状的物体。Garrett学长觉得三种形状太多了,想把它们变成同一种形状,问题来了,对于不同数量的这三种物体,进行若干次操作,这三种形状的物体最后能不能变成同一种形状呢?

如果可以的话,请输入"YES",如果不可以的话,请输出“NO”;

注:三种形状物体的个数均不超过2e7,测试数据组数不超过1000组。

输入描述

第一行输入一个整数t(0t1000),代表测试数据的组数。

在接下来的t行,每一行都有三个整数a,b,c,分别表示三角形,圆形和正方形的数量(0a,b,c2e7)。

输出描述

输出“YES”或"NO"(YES和NO均不包含双引号,只需要输出字母就可以了),表示结果。

示例1

输入:

2
6 6 6
1 2 3

输出:

YES
NO

说明:

对于样例一,我们已知有6个三角形,6个圆形和6个正方形。因为一个三角形和一个圆形碰撞之后可以得到两个正方形,经过这样一次操作之后,我们得到了5个三角形,5个圆形和8个正方形,若干次这样的操作之后,我们可以得到18个正方形,这样我们把三种不同形状的物体变成了一种形状的物体,所以输出“YES“。(最后不一定要都转变为正方形,只要所有物体最后变成同一种形状就可以。)(6,6,6)->(5,5,8)->(4,4,10)->(3,3,12)->(2,2,14)->(1,1,16)->(0,0,18)样例所给出三种形状数目状态变化如上。

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++14(g++5.4) 解法, 执行用时: 7ms, 内存消耗: 476K, 提交时间: 2020-05-11 15:57:48

#include<bits/stdc++.h>
using namespace std;

int main()
{
	int a,b,c,t;
	cin>>t;
	while( t-- )
	{
		cin>>a>>b>>c;
		if( (a-b)%3==0 || (a-c)%3==0 || (b-c)%3==0 )
			puts("YES");
		else
			puts("NO");
	}
	return 0;
 } 

C 解法, 执行用时: 2ms, 内存消耗: 256K, 提交时间: 2021-11-20 13:15:09

#include<stdio.h>
int main()
{
	long long a,b,c,n;
	scanf("%lld",&n);
	while(n--){
		scanf("%lld %lld %lld",&a,&b,&c);
		if((a-b)%3==0||(b-c)%3==0||(a-c)%3==0) printf("YES\n");
		else printf("NO\n");
	}
}

C++11(clang++ 3.9) 解法, 执行用时: 5ms, 内存消耗: 480K, 提交时间: 2020-02-16 17:41:47

#include<stdio.h>
int main()
{
	int t,a,b,c;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d%d%d",&a,&b,&c);
		printf((a-b)%3==0||(c-b)%3==0||(a-c)%3==0?"YES\n":"NO\n");
	}
	return 0;
}

上一题