链接:https://ac.nowcoder.com/acm/problem/222420
来源:牛客网
题目描述
2021年5月15日,天问一号携祝融号火星车成功着陆火星,我国首次火星探测任务着陆火星取得圆满成功!
为了庆祝这一盛事,河南省的ICPCer也希望能用自己的编程技巧,为火星着陆贡献一份力量。现在探测器探测到了火星的一块地形信息,想请你编程判断祝融号火星车能否平稳着陆?
地形探测的结果将以二维矩阵的形式给出,矩阵上的数字代表该位置的高度。祝融号的长和宽分别设为H,W。令地形矩阵为A,那么如果有一对(x,y)满足A[x][y],A[x+H-1][y],A[x][y+W-1],A[x+H-1][y+W-1]均被探测到且高度相等,那么祝融号就可以平稳着陆。
输入描述:
第一行输入两个正整数n,m(1≤n,m≤1000)n,m(1\leq n,m\leq 1000)n,m(1≤n,m≤1000);
其后n行,每行m个正整数,代表探测出的结果矩阵A,保证0≤A[i][j]≤1090\leq A[i][j]\leq 10^90≤A[i][j]≤109;
其后两个正整数H,W 表示祝融号的长和宽,保证1≤H≤n,1≤W≤m1\leq H\leq n, 1\leq W\leq m1≤H≤n,1≤W≤m;
输出描述:
如果可以着陆,输出"YES",否则输出"NO"(不包括引号)。
示例1
输入
复制4 4 1 1 1 1 1 2 2 1 1 2 2 1 1 1 1 1 2 2
4 4
1 1 1 1
1 2 2 1
1 2 2 1
1 1 1 1
2 2
输出
复制YES
YES
示例2
输入
复制4 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 2
4 4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
2 2
输出
复制NO
NO
#include<iostream>
using namespace std;
int main()
{
int a[1000][1000];
int i,j,n,m,h,w;
cin>>n>>m;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
cin>>a[i][j];
}
}
cin>>h>>w;
int flag=0;
for(i=0;i<n-h+1;i++)
{
for(j=0;j<m-w+1;j++)
{
if(a[i][j]==a[i+h-1][j]&&a[i][j]==a[i][j+w-1]&&a[i][j]==a[i+h-1][j+w-1])
flag++;
}
}
if(flag!=0)
cout<<"YES";
else
cout<<"NO";
return 0;
}