在一场模拟游戏中,每一位同学都有一个能力值,能力值的大小直接决定了同学们在这场游戏中的闯关能力。现在同学们在操场上排成了一个 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 。
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 main(){
int n,m,a[205][205],t1,t2,x1,y1,x2,y2;
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[i][j];
}
}
cin>>t1>>t2;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(a[i][j]==t1){
x1=i,y1=j;
}
if(a[i][j]==t2){
x2=i,y2=j;
}
}
}
if((max(x1,x2)-min(x1,x2)==1&&y1==y2)||(max(y1,y2)-min(y1,y2)==1&&x1==x2)){
cout<<"Y";
}
else cout<<"N";
return 0;
}
只得了一半分,救救我吧