AC代码如下
#include <iostream>
#include <cmath>
using namespace std;
const int max_k=210;
int output[max_k]={0};
const int max_n=1100;
int queen[max_n]={0};
bool is_solution(int n,int a[]){
for(int i = 0; i < n -1 ;i++){
for(int j = i+1 ; j < n ;j++){
if(a[j]==a[i]||(j-i)==abs(a[j]-a[i])) return false;
}
}
return true;
}
int main(){
int k,n;
scanf("%d",&k);
for(int i = 0 ; i < k;i++){
scanf("%d",&n);
for(int j = 0 ;j < n;j++){
scanf("%d",&queen[j]);
}
if(is_solution(n,queen)){
output[i]=1;
}
}
for(int i = 0 ; i < k;i++){
if(output[i]) printf("YES\n");
else printf("NO\n");
}
return 0;
}