#include <stdio.h>
#include <math.h>
#define LEN 1002
int isUnique(int arr[][LEN], int x, int y, int TOL) {
if (abs(arr[y][x] - arr[y-1][x-1]) <= TOL //左上
|| abs(arr[y][x] - arr[y][x-1]) <= TOL //左
|| abs(arr[y][x] - arr[y+1][x-1]) <= TOL //左下
|| abs(arr[y][x] - arr[y-1][x]) <= TOL //上
|| abs(arr[y][x] - arr[y-1][x+1]) <= TOL //右上
|| abs(arr[y][x] - arr[y][x+1]) <= TOL //右
|| abs(arr[y][x] - arr[y+1][x+1]) <= TOL //右下
|| abs(arr[y][x] - arr[y+1][x]) <= TOL) { //下
return 0;
}
return 1;
}
int arr[LEN][LEN] = {0};
int pixel[2 << 24] = {0};
int main() {
int M, N, TOL, cnt = 0;
scanf("%d %d %d", &M, &N, &TOL);
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= M; j++) {
scanf("%d", &arr[i][j]);
pixel[arr[i][j]]++;
}
}
int x, y, color;
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= M; j++) {
if (pixel[arr[i][j]] == 1) {
if (isUnique(arr, j, i, TOL)) {
cnt++;
x = j;
y = i;
color = arr[i][j];
if (cnt == 2) {
break;
}
}
}
}
if (cnt == 2) {
break;
}
}
if (cnt == 2) {
printf("Not Unique\n");
} else if (cnt == 0) {
printf("Not Exist\n");
} else {
printf("(%d, %d): %d", x, y, color);
}
return 0;
}
1068 万绿丛中一点红 (20 分)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 我的PAT系列文章更新重心已移至Github,欢迎来看PAT题解的小伙伴请到Github Pages浏览最新内容。...
- 弹性盒子是一种新技术,但在如今各个浏览器都广泛支持的情况下,它已经开始准备广泛应用了。 弹性盒子提供了工具,允许快...