首页 > 解决方案 > Codeforces:“B. 8 Queens, Again”

问题描述

问题就在这里:B. 8 Queens,再次!

我想我没有遇到最坏的情况或遗漏什么。我的提交在测试 2中失败。

我刚刚检查了每个输入的行、列和对角线及其下一个输入。我认为这就足够了。是否还有其他情况可以有效或无效?我不确定我的代码是否全部正确。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int t, y[9], x[9], i, j, valid;
    scanf("%d", &t);
    while(t--)
    {
        valid = 1;
        for(i = 0; i < 8; i++)
        {
            scanf(" %c %d", &x[i], &y[i]);
        }
        for(i = 0; i < 8; i++)
        {
            for(j = i+1; j < 8; j++)
            {
                if(x[i] == x[j] || y[i] == y[j] || abs(x[i] - x[j]) == abs(y[i]-y[j])) valid = 0;
            }
        }
        (valid) ? printf("Valid\n") : printf("Invalid\n");
    }
    return 0;
}

标签: cn-queens

解决方案



推荐阅读