天天看點

Rooks NOJ 1390

Rooks

時間限制(普通/Java)  :  1000 MS/ 3000 MS          運作記憶體限制 : 65536 KByte

總送出 : 61            測試通過 : 42 

題目描述

Jake and Sully are playing around with a chessboard one night after working with their avatars all

day. They decide it would be interesting to place some rooks on the chessboard in a way that no rook

can threaten another rook. Since rooks move along rows and columns, this means two rooks may not

be on the same row or column. Your goal is to write a program to determine whether any rooks are

threatened.

輸入

Chessboards are 8x8 boards with positions between (1,1) and (8,8). The input begins with the

number of chess boards. Each chessboard is on a separate line and begins with the number of rooks,

followed by the column and row positions of each rook.

輸出

For each chessboard, your program should output the words ”SAFE” or ”NOT SAFE” on a

single line.

樣例輸入

2

3 1 1 2 6 8 8

2 2 3 1 3

樣例輸出

SAFE

NOT SAFE

提示

undefined

水題就不多說什麼了==

實作代碼:

<span style="font-size:12px;">#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
int t,n;
int main()
{
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        int flag=1;
        int *a=new int[n+1],*b=new int[n+1];
        for(int i=0;i<n;i++)
        {
            scanf("%d%d",&a[i],&b[i]);
            for(int j=0;j<i&&flag==1;j++)
            {
                if(flag==1&&(a[i]==a[j])||(b[i]==b[j]))
                {
                   flag=0;
                }
            }
        }
        if(flag==1)
        {
            printf("SAFE\n");
        }
        else
            printf("NOT SAFE\n");
    }
}</span>