要点:①map的使用
②PAT还是得注意格式问题:“在一行中按照 (x, y): color
的格式”不仅冒号和color之间有空格,逗号和y之间也有空格。
#include <iostream>
#include <map>
#include <cmath>
using namespace std;
int m,n,tol;
int a[10000][10000];
int dir[8][2]={{1,0},{-1,0},{0,-1},{0,1},{-1,-1},{1,1},{-1,1},{1,-1}};
bool status(int x,int y){
for(int i=0;i<8;i++){
int xx=x+dir[i][0];
int yy=y+dir[i][1];
if(xx>=0&&xx<=n&&yy>=0&&yy<=m&&abs(a[x][y]-a[xx][yy])<=tol){
return false;
}
}
return true;
}
int main()
{
cin>>m>>n>>tol;
map<int, int> mp;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[i][j];
mp[a[i][j]]++;
}
}
int cnt=0;
int ix,iy;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(mp[a[i][j]]==1&&status(i,j)){
cnt++;
ix=i+1;
iy=j+1;
}
}
}
if(cnt==0){
cout<<"Not Exist";
}else if(cnt==1){
cout<<"("<<iy<<", "<<ix<<"): "<<a[ix-1][iy-1];
}else{
cout<<"Not Unique";
}
return 0;
}