PAT (Advanced Level) Practice 1128 N Queens Puzzle (20 分)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Nightmare_ak/article/details/84873351
#include<cstdio>
#include<cmath>
using namespace std;

const int N=1000+5;

int a[N],n;

int check()
{
    for(int i=1;i<=n;i++)
    {
        for(int j=i-1;j>=1;j--)
            if(abs(a[j]-a[i])==i-j||a[j]==a[i])
                return 0;
        for(int j=i+1;j<=n;j++)
            if(abs(a[j]-a[i])==j-i||a[j]==a[i])
                return 0;
    }
    return 1;
}
int main()
{
    int q;scanf("%d",&q);
    while(q--)
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%d",a+i);
        if(check()) puts("YES");
        else puts("NO");
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Nightmare_ak/article/details/84873351