一、题目
输入样例1:
8 6 200
0 0 0 0 0 0 0 0
65280 65280 65280 16711479 65280 65280 65280 65280
16711479 65280 65280 65280 16711680 65280 65280 65280
65280 65280 65280 65280 65280 65280 165280 165280
65280 65280 16777015 65280 65280 165280 65480 165280
16777215 16777215 16777215 16777215 16777215 16777215 16777215 16777215
输出样例1:
(5, 3): 16711680
输入样例2:
4 5 2
0 0 0 0
0 0 3 0
0 0 0 0
0 5 0 0
0 0 0 0
输出样例2:
Not Unique
输入样例3:
3 3 5
1 2 3
3 4 5
5 6 7
输出样例3:
Not Exist
二、个人理解
Tips:
C++:
#include <iostream>
#include <map>
#include <cmath>
using namespace std;
int main()
{
int m, n, tol;
cin >> m >> n >> tol;
int a[n + 2][m + 2];
map <int, int> Dedup;//使用map去重!!!!!!
for (int i = 1; i < n + 1; i++) {
for (int j = 1; j < m + 1; j++) {
cin >> a[i][j];
Dedup[a[i][j]]++;
}
}
int count = 0, r_m, r_n;
for (int i = 1; i < n + 1 ; i++) {
for (int j = 1; j < m + 1 ; j++) {
int total = 0;
if (abs(a[i][j] - a[i - 1][j - 1]) > tol && abs(a[i][j] - a[i - 1][j]) > tol && abs(a[i][j] - a[i][j - 1]) > tol
&& abs(a[i][j] - a[i + 1][j + 1] ) > tol && abs(a[i][j] - a[i + 1][j]) > tol && abs(a[i][j] - a[i][j + 1]) > tol
&& abs(a[i][j] - a[i - 1][j + 1]) > tol && abs(a[i][j] - a[i + 1][j - 1] ) > tol && Dedup[a[i][j]] == 1) {
r_n = i;
r_m = j;
count++;
}
}
}
if (count == 1) {
cout << "(" << r_m << ", " << r_n << "): " << a[r_n ][r_m ];
} else if (count > 1) {
cout << "Not Unique";
} else {
cout << "Not Exist";
}
}