Submission details
Task:Peli
Sender:Verlet
Submission time:2026-01-17 14:09:26 +0200
Language:C++ (C++20)
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED17
#2ACCEPTED38
#3ACCEPTED45
Test results
testverdicttimegroup
#1ACCEPTED0.03 s1, 2, 3details
#2ACCEPTED0.03 s1, 2, 3details
#3ACCEPTED0.03 s2, 3details
#4ACCEPTED0.03 s3details
#5ACCEPTED0.03 s2, 3details
#6ACCEPTED0.03 s3details

Code

#include <iostream>

using namespace std;

#define S 2001

int dp[S][S];
int rows[S];
int cols[S];
int diag[2 * S];

int diagonal(int r, int c)
{
    return r - c + S - 1;
}

int main()
{
    for (int i = 0; i < S; i++)
    {
        dp[i][0] = 1;
        dp[0][i] = 1;
        dp[i][i] = 1;
    }

    for (int x = 1; x < S; x++)
    {
        for (int r = 1; r < x; r++)
        {
            if (rows[r] || cols[x] || diag[diagonal(r, x)])
            {
                dp[r][x] = 1;
            }
            else
            {
                dp[r][x] = 2; rows[r] = 1; cols[x] = 1; diag[diagonal(r, x)] = 1;
            }
        }
        for (int c = 1; c < x; c++)
        {
            if (rows[x] || cols[c] || diag[diagonal(x, c)])
            {
                dp[x][c] = 1;
            }
            else
            {
                dp[x][c] = 2; rows[x] = 1; cols[c] = 1; diag[diagonal(x, c)] = 1;
            }
        }
    }

    // for (int r = 0; r < S; r++)
    // {
    //     for (int c = 0; c < S; c++)
    //     {
    //         cout << dp[r][c] << " ";
    //     }
    //     cout << endl;
    // }

    // for (int r = 0; r < S; r++)
    // {
    //     for (int c = 0; c < S; c++)
    //     {
    //         cout << diagonal(r, c) << " ";
    //     }
    //     cout << endl;
    // }

    int t; cin >> t;

    while (t--)
    {
        int a, b; cin >> a >> b;
        if (dp[a][b] == 1) cout << "first" << endl;
        if (dp[a][b] == 2) cout << "second" << endl;
    }
}

Test details

Test 1 (public)

Group: 1, 2, 3

Verdict: ACCEPTED

input
5
2 2
1 2
3 2
4 3
...

correct output
first
second
first
first
second

user output
first
second
first
first
second

Test 2

Group: 1, 2, 3

Verdict: ACCEPTED

input
100
1 1
1 2
1 3
1 4
...

correct output
first
second
first
first
first
...

user output
first
second
first
first
first
...

Test 3

Group: 2, 3

Verdict: ACCEPTED

input
1000
82 14
91 84
13 97
92 23
...

correct output
first
first
first
first
first
...

user output
first
first
first
first
first
...

Test 4

Group: 3

Verdict: ACCEPTED

input
1000
1630 271
1812 1671
254 1938
1827 443
...

correct output
first
first
first
first
first
...

user output
first
first
first
first
first
...

Test 5

Group: 2, 3

Verdict: ACCEPTED

input
1000
36 14
79 81
93 82
32 1
...

correct output
first
first
first
first
first
...

user output
first
first
first
first
first
...

Test 6

Group: 3

Verdict: ACCEPTED

input
1000
486 300
899 1455
879 543
40 65
...

correct output
second
second
second
second
second
...

user output
second
second
second
second
second
...