两个数相邻吗 题解

两个数相邻吗      时限:1s 空间:256m

同学们在操场上排成了一个 n 行 m 列的队形,假设这个队形中所有人年龄都不同,那么给定 2 个年龄后,请你编程判断,这 2 个年龄对应的同学是否相邻?

相邻的定义是:如果两个同学在上下左右的位置是挨在一起的,那么就算是相邻的。

比如:如下是一个 3 行 4 列的队形,这个队形中每个数字代表了每个同学的年龄。

8 2 3 4

5 6 7 1

9 10 11 12

那么这个队形中,年龄 6 和年龄 10 两个值就是相邻的。

输入格式

第 1行有 2 个整数 n 和 m ,分别代表队形的行和列的值( 2≤n,m≤200)

接下来 n 行,每行有 m 个整数,代表每个同学的年龄(每个同学的年龄的值在 1∼100 之间)

最后一行输入 2个整数,代表 2 个不同年龄的值。

输出格式

如果两个年龄的值是相邻的,请输出字符 Y ,否则请输出字符 N 。

输入/输出例子1

输入:

3 4

8 2 3 4

5 6 7 1

9 10 11 12

6 10

输出:

Y

作答区域

#include<bits/stdc++.h>
using namespace std;
int fx[5]={0,1,0,-1,0};
int fy[5]={0,0,1,0,-1};
int x,y,n,a[909][909],m;
int main(){
	cin>>n>>m;
	for (int i=1;i<=n;i++)
		for (int j=1;j<=m;j++)
			cin>>a[i][j];
	cin>>x>>y;
	for (int i=1;i<=n;i++)
	{
		for (int j=1;j<=m;j++)
		{
			if (a[i][j]==x) 
			{
				int tx,ty;
				for (int l=1;l<=4;l++)
				{
					tx=i+fx[l];
					ty=j+fy[l];
					if(a[tx][ty]==y) 
					{
						cout<<"Y";
						return 0;
					}
				}
			}
		}
	}
	cout<<"N";
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值