1128 N Queens Puzzle (20 分)

1128 N Queens Puzzle (20 分)

水题,直接按照当初N皇后的判定条件(就是代码中有注释的那几行)判定判定就行了。

#include 
#define N 1005
using namespace std;
int a[N];
int main()  {
    int n,k;
    cin>>n;
    for (int i=0;i>k;
        for (int j=1;j<=k;j++)  cin>>a[j];
        int sp=0;
        for (int j=1;j<=k;j++)  {
            for (int m=j+1;m<=k;m++)    {
                if (a[j]==a[m]) sp=1;			//判定同行
                else if (j-a[j]==m-a[m]) sp=1;	//判定副对角线相同
                else if (j+a[j]==m+a[m]) sp=1;	//判定主对角线相同
                if (sp==1)  break;
            }
            if (sp==1)  break;
        }
        if (sp==1)  cout<<"NO"<

你可能感兴趣的:(PAT甲级题解)