西南民族大学第十届校赛(同步赛)K

链接:https://ac.nowcoder.com/acm/contest/322/K
来源:牛客网
 

题目描述

已知一个正方体,每个面上都有任意一个数(假设每一面的面积足够大来装下当前面上的数字),现被展开成了如下形式:

输入中保证第一行有一个面,第二行有四个面,第三行有一个面。请用代码检查这个正方体对立面上的数是否相同。

输入描述:

输入包含多个测试样例。第一行为一个整数T(1 <= T <= 1e4),接下来每个样例占3行,每行都包括4个数,为0表明当前位置不表示面,每个面上的数值范围不超过int。

Eg:上图的输入为:

0 1 0 0

2 4 2 4

0 0 1 0

输出描述:

对于每个测试样例,如果当前正方体的三个对立面的数都分别相同的话就输出”Yes!”,否则输出”No!”。每个结果占一行,注意每50个结果要加一个空行。

示例1

输入

复制

3
0 2 0 0
1 3 1 3
0 2 0 0
0 2 0 0
1 3 1 3
0 0 0 2
0 0 0 2
1 2 2 1
0 0 1 0

输出

复制

Yes!
Yes!
No!

思路:

确定各个位置 , 判断是否相等就可以啦

代码:

#include <bits/stdc++.h>
using namespace std;
int main()
{
	int T,a[30][30] , x , y;
	cin >> T;
	for(int t = 1 ; t <= T ; t++)
	{
		for(int i = 0 ; i < 3 ; i++)
		{
			for(int j = 0 ; j < 4 ; j++)
			{
				cin >> a[i][j];
			}
		}
		for(int i = 0 ; i < 4 ; i++)
		{
			if(a[0][i] != 0)
			{
				x = a[0][i];
			}
			if(a[2][i] != 0)
			{
				y = a[2][i];
			}
		}
		if(x == y && a[1][0] == a[1][2] && a[1][1] == a[1][3])
		{
			printf("Yes!\n");
		}
		else
		{
			printf("No!\n"); 
		}
		if(t % 50 == 0)
		{
			printf("\n");
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41593380/article/details/86179890
今日推荐