题目描述
链接
题目上只保证了不在同一列,要判断是否在同一行,以及是否在同一列
分析
- 循环是0~n-1, 0~n-1
- 不满足的条件是v[j] == v[t] || abs(v[j]-v[t]) == abs(j-t)
代码
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int main() {
int k, n;
cin >> k;
for (int i = 0; i < k; i++) {
cin >> n;
vector<int> v(n);
bool result = true;
for (int j = 0; j < n; j++) {
cin >> v[j];
for (int t = 0; t < j; t++) {
if (v[j] == v[t] || abs(v[j]-v[t]) == abs(j-t)) {
result = false;
break;
}
}
}
cout << (result == true ? "YES
" : "NO
");
}
return 0;
}