暴力破解
#include<iostream>#include<vector>#include<cmath>#include<map>using namespace std;vector<vector<int>> all;map<int,int> visited;int N, M, T;bool pd(int x, int y){ if (x - 1 >= 0 && y - 1 >= 0 && abs(all[x][y] - all[x - 1][y - 1]) <= T) return false; if (x - 1 >= 0 && abs(all[x][y] - all[x - 1][y]) <= T) return false; if (x - 1 >= 0 && y + 1 < M && abs(all[x][y] - all[x - 1][y + 1]) <= T) return false; if (y - 1 >= 0 && abs(all[x][y] - all[x][y - 1]) <= T) return false; if (y + 1 < M && abs(all[x][y] - all[x][y + 1]) <= T) return false; if (x + 1 < N && y - 1 >= 0 && abs(all[x][y] - all[x + 1][y - 1]) <= T) return false; if (x + 1 < N && abs(all[x][y] - all[x + 1][y]) <= T) return false; if (x + 1 < N && y + 1 < M && abs(all[x][y] - all[x + 1][y + 1]) <= T) return false; return true;}int main(){ int cnt = 0; int x, y; cin >> M>>N>>T; all.resize(N, vector<int>(M)); for (int t = 0;t < N;t++) for (int i = 0;i < M;i++) { cin >> all[t][i]; visited[all[t][i]]++; } for (int t = 0;t < N;t++) for (int i = 0;i < M;i++) if (visited[all[t][i]]==1&&pd(t, i)) { if (++cnt > 1) { cout << "Not Unique" << endl;return 0; } x = t + 1;y = i + 1; } if (cnt == 0) cout << "Not Exist" << endl; else PRintf("(%d, %d): %d/n", y, x, all[x - 1][y - 1]);}新闻热点
疑难解答