페이지

1331번: 나이트 투어

https://www.acmicpc.net/problem/1331


#include<stdio.h>
bool check[6][6];
char a[40], b[40];
int main()
{
    int i = 0;
    for (i = 1; i <= 36; i++)
    {
        scanf("\n%c%c", &a[i], &b[i]);
    }
    if (!(a[1] >= 'A'&&a[1] <= 'F'&&b[1] >= '1'&&b[1] <= '6'))
    {
        printf("Invalid");
        return 0;
    }
    check[a[1] - 'A'][b[1] - '1'] = 1;
    for (i = 2; i <= 36; i++)
    {
        if (!(check[a[i] - 'A'][b[i] - '1'] == 0
            && a[i] >= 'A'&&a[i] <= 'F'&&b[i] >= '1'&&b[i] <= '6'
            && ((a[i - 1] + 1 == a[i] || a[i - 1] - 1 == a[i]) && (b[i - 1] + 2 == b[i] || b[i - 1] - 2 == b[i]) || (a[i - 1] + 2 == a[i] || a[i - 1] - 2 == a[i]) && (b[i - 1] + 1 == b[i] || b[i - 1] - 1 == b[i]))))
        {
            printf("Invalid");
            return 0;
        }
        check[a[i] - 'A'][b[i] - '1'] = 1;
    }
    if (!((a[36] + 1 == a[1] || a[36] - 1 == a[1]) && (b[36] + 2 == b[1] || b[36] - 2 == b[1]) || (a[36] + 2 == a[1] || a[36] - 2 == a[1]) && (b[36] + 1 == b[1] || b[36] - 1 == b[1])))
    {
        printf("Invalid");
    }
    else
    {
        printf("Valid");
    }
    return 0;
}

댓글 없음 :

댓글 쓰기