自练代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn=1005;
int k;
int main(){
scanf("%d",&k);
for(int i=0;i<k;i++){
int n,is=1;
int ans[maxn]={0};
scanf("%d",&n);
for(int j=1;j<=n;j++){
scanf("%d",&ans[j]);
}
for(int j=1;j<=n;j++){
for(int g=1;g<=n;g++){
if(j==g) continue;
if(abs(ans[j]-ans[g])==abs(j-g)) {
is=0;
printf("No\n");
j=n+1;
break;
}
}
}
if(is==1) printf("Yes\n");
}
return 0;
}
某位大神(薛玉洁)代码:
#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;
}
cout << (result == true ? "YES\n" : "NO\n");
}
return 0;
}