#include<iostream>
#include<vector>
#include<map>
using namespace std;
int m, n, tol;//m行,n列
vector<vector<int>> pixel;
//8个方向
int dir[8][2] = { {0,-1},{0,1},{-1,-1},{-1,0},{-1,1},{1,-1},{1,0},{1,1} };
//判断与周围像素色差
bool judge(int x, int y) {
for (int i = 0; i < 8; i++) {
int near_x = x + dir[i][0];
int near_y = y + dir[i][1];
if (near_x >= 0 && near_x < m && near_y >= 0 && near_y < n && abs(pixel[x][y] - pixel[near_x][near_y]) <= tol)
return false;
}
return true;
}
int main() {
int cnt = 0, x = 0, y = 0;
scanf("%d%d%d", &n, &m, &tol);//注意mn的前后顺序
pixel.resize(m, vector<int>(n));
map<int, int> cntMap;//像素是否唯一
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &pixel[i][j]);
cntMap[pixel[i][j]]++;
}
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (cntMap[pixel[i][j]] == 1 && judge(i, j)) {
cnt++;
x = i;
y = j;
}
}
}
if (cnt == 1) {
printf("(%d, %d): %d", y + 1, x + 1, pixel[x][y]);
}
else if (cnt == 0) {
printf("Not Exist");
}
else {
printf("Not Unique");
}
return 0;
}
PAT B1068 万绿丛中一点红
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 传送门 https://pintia.cn/problem-sets/994805260223102976/pro...
- 题目 对于计算机而言,颜色不过是像素点对应的一个 24 位的数值。现给定一幅分辨率为 M×N 的画,要求你找出万绿...
- 我的PAT系列文章更新重心已移至Github,欢迎来看PAT题解的小伙伴请到Github Pages浏览最新内容。...
- 乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范。从小白开始逐步掌握用编程解决问题。 PAT...