Submission details
Task:Peli
Sender:vulpesomnia
Submission time:2026-01-17 14:50:08 +0200
Language:Rust (2021)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.02 s1, 2, 3details
#20.02 s1, 2, 3details
#30.02 s2, 3details
#40.02 s3details
#50.02 s2, 3details
#60.02 s3details

Code

use std::io;

fn main() {
    let mut input: String = String::new();
    io::stdin().read_line(&mut input).expect("gg");
    let t: usize = input.trim().parse().unwrap();
    let mut games: Vec<Vec<bool>> = vec![vec![false; 2000]; 2000];
    let mut calculated: Vec<Vec<bool>> = vec![vec![false; 2000]; 2000];

    // Index = row/column -> output first column/row when you loose
    let mut rc_lose: Vec<usize> = vec![0; 2000];
    let mut d_lose: Vec<usize> = vec![0; 2000];

    for i in 0..2000 {
        for j in i..2000 {
            // SHOULD WORK LIKE THIS; TRY 0...2000 IF NOT
            if calculated[i][j] == false {
                calculated[i][j] = true;
                if i == 0 || j == 0 {
                    games[i][j] = true;
                } else {
                    if (rc_lose[i] != 0 || rc_lose[j] != 0) || (d_lose[i - j + 1] != 0) {
                        games[i][j] = true;
                    } else {
                        games[i][j] = false;
                        rc_lose[i] = j;
                        rc_lose[j] = i;
                        d_lose[i - j] = j;
                    }
                }
            }
        }
    }
    for _ in 0..t {
        let mut input: String = String::new();
        io::stdin().read_line(&mut input).expect("gg");
        let mut iter = input.split_whitespace();
        let (a, b): (usize, usize) = (
            iter.next().unwrap().trim().parse().unwrap(),
            iter.next().unwrap().trim().parse().unwrap(),
        );
        if !games[a][b] {
            println!("first");
        } else {
            println!("second");
        }
    }
}

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:

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

correct output
first
second
first
first
first
...

user output
first
second
second
second
second
...

Feedback: Incorrect character on line 3 col 1: expected "first", got "second"

Test 3

Group: 2, 3

Verdict:

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

correct output
first
first
first
first
first
...

user output
first
first
second
first
first
...

Feedback: Incorrect character on line 3 col 1: expected "first", got "second"

Test 4

Group: 3

Verdict:

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

correct output
first
first
first
first
first
...

user output
first
first
second
first
first
...

Error:
thread 'main' panicked at input/code.rs:42:21:
index out of bounds: the len is 2000 but the index is 2000
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 5

Group: 2, 3

Verdict:

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

correct output
first
first
first
first
first
...

user output
first
second
first
first
second
...

Feedback: Incorrect character on line 2 col 1: expected "first", got "second"

Test 6

Group: 3

Verdict:

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

correct output
second
second
second
second
second
...

user output
first
second
first
second
first
...

Error:
thread 'main' panicked at input/code.rs:42:21:
index out of bounds: the len is 2000 but the index is 2000
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace