146132025-01-20 19:50:43PappMatyasÜtős helyzet (75 pont)cpp17Elfogadva 75/753ms500 KiB
#include <iostream>

using namespace std;

bool Rook(int A[8][8], int x, int y)
{
    for(int i = 0; i < 8; i++)
    {
        if(A[i][y] != 0)
        {
            return true;
        }
        if(A[x][i] != 0)
        {
            return true;
        }
    }
    return false;
}

int Queen(int A[8][8], int x, int y)
{
    int re = 0;
    for(int i = 0; i < 8; i++)
    {
        if(i + x < 8 && i + y < 8)
        {
            if(A[x+i][y+i]!=0)
            {
                if(A[x+i][y+i]>re)
                {
                    re = A[x+i][y+i];
                }
            }
        }
        if(x - i >= 0 && i + y < 8)
        {
            if(A[x-i][y+i]!=0)
            {
                if(A[x-i][y+i]>re)
                {
                    re = A[x-i][y+i];
                }
            }
        }
        if(i + x < 8 && y - i >= 0)
        {
            if(A[x+i][y-i]!=0)
            {
                if(A[x+i][y-i]>re)
                {
                    re = A[x+i][y-i];
                }
            }
        }
        if(x - i >= 0 && y - i >= 0)
        {
            if(A[x-i][y-i]!=0)
            {
                if(A[x-i][y-i]>re)
                {
                    re = A[x-i][y-i];
                }
            }
        }
    }
    return re;
}

int main()
{
    int n, A[8][8] = {0}, a, x, y;
    cin >> n;
    for(int i = 0; i < n; i++)
    {
        cin >> a >> x >> y;
        x--;
        y--;
        if(a == 1)
        {
            if(!Rook(A, x, y))
            {
                if(Queen(A, x, y) == 2)
                {
                    cout << "NEM\n";
                }
                else
                {
                    cout << "IGEN\n";
                    A[x][y] = 1;
                }
            }
            else
            {
                cout << "NEM\n";
            }
        }
        else if (a == 2)
        {
            if(!Rook(A, x, y))
            {
                if(Queen(A, x, y) != 0)
                {
                    cout << "NEM\n";
                }
                else
                {
                    cout << "IGEN\n";
                    A[x][y] = 2;
                }
            }
            else
            {
                cout << "NEM\n";
            }
        }
        else
        {
            cout << "-\n";
            A[x][y] = 0;
        }
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base75/75
1Elfogadva0/01ms316 KiB
2Elfogadva0/03ms316 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/33ms384 KiB
7Elfogadva5/53ms328 KiB
8Elfogadva6/63ms360 KiB
9Elfogadva6/63ms316 KiB
10Elfogadva6/63ms316 KiB
11Elfogadva6/63ms316 KiB
12Elfogadva6/63ms316 KiB
13Elfogadva6/63ms500 KiB
14Elfogadva6/63ms368 KiB
15Elfogadva6/63ms316 KiB
16Elfogadva6/63ms320 KiB
17Elfogadva6/63ms316 KiB