输入样例
4 4
1 2
2 1 2 1
1 3 1 3
2 1 2 2
2 2 1 3
输出样例
1 4
#include<bits/stdc++.h>
using namespace std;
const int MAXN = 105;
int m, n;
int x, y;
int a[MAXN][MAXN];
int main() {
cin >> m >> n;
cin >> x >> y;
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
cin >> a[i][j];
}
}
int t = a[x][y];
int minDist = INT_MAX;
int minX = INT_MAX, minY = INT_MAX;
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
if (a[i][j] == t && (i != x || j != y)) {
int d = abs(i - x) + abs(j - y);
if (d < minDist) {
minDist = d;
minX = i;
minY = j;
} else if (d == minDist) {
if (i < minX) {
minX = i;
minY = j;
} else if (i == minX && j < minY) {
minY = j;
}
}
}
}
}
cout << minX << " " << minY << endl;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
struct node{
int x;
int y;
int dis;
}a[10010];
int b[105][105];
int cmp(node a,node b){
if(a.dis==b.dis){
if(a.x==b.x){
return a.y<b.y;
}
return a.x<b.x;
}
return a.dis<b.dis;
}
int main(){
int m,n,u,v;
cin>>m>>n>>u>>v;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
cin>>b[i][j];
}
}
int k=0;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
if(i==u&&j==v)continue;
if(b[i][j]==b[u][v]){
a[++k].dis=abs(i-u)+abs(j-v);
a[k].x=i;
a[k].y=j;
}
}
}
sort(a+1,a+1+k,cmp);
cout<<a[1].x<<" "<<a[1].y<<endl;
return 0;
}