2340 cin >> m >> n >> tol;
2341 vector grid(n, vector<long>(m));
2342 unordered_map<long, unsigned long> um_cnt;
2343 unordered_map<long, long> um_x;
2344 unordered_map<long, long> um_y;
2345 for(
int i = 0; i < n; i++) {
2346 for(
int j = 0; j < m; j++) {
2348 um_cnt[grid[i][j]]++;
2349 um_x[grid[i][j]] = i;
2350 um_y[grid[i][j]] = j;
2356 bool has_ans =
false;
2357 for(
auto [v, cnt]: um_cnt) {
2361 pair<long, long> surroundings[8] = {make_pair(x - 1, y - 1), make_pair(x - 1, y), make_pair(x - 1, y + 1),
2362 make_pair(x, y - 1), make_pair(x, y + 1),
2363 make_pair(x + 1, y - 1), make_pair(x + 1, y), make_pair(x + 1, y + 1)};
2365 for(
auto [s_x, s_y]: surroundings) {
2366 if(s_x >= 0 && s_x < n && s_y >= 0 && s_y < m) {
2367 const long dist = abs(v - grid[s_x][s_y]);
2381 cout <<
"Not Unique";
2388 cout <<
'(' << ans_y <<
", " << ans_x <<
"): " << ans_v;
2390 cout <<
"Not Exist";