Submission details
Task:Peli
Sender:asonnine
Submission time:2026-01-17 16:23:22 +0200
Language:Rust (2021)
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED17
#2ACCEPTED38
#3ACCEPTED45
Test results
testverdicttimegroup
#1ACCEPTED0.05 s1, 2, 3details
#2ACCEPTED0.05 s1, 2, 3details
#3ACCEPTED0.05 s2, 3details
#4ACCEPTED0.05 s3details
#5ACCEPTED0.05 s2, 3details
#6ACCEPTED0.05 s3details

Code

use std::collections::HashSet;
fn main() {
    let mut used_rows: HashSet<isize> = HashSet::new();
    let mut used_diagonals: HashSet<isize> = HashSet::new();
    let mut arr: Vec<isize> = Vec::new();
    for i in 0..2001 {
        let mut pushed = false;
        for test in 0..2001 {
            if used_rows.contains(&test) {
                continue;
            }
            if used_diagonals.contains(&(i - test)) {
                continue;
            }
            arr.push(test);
            used_rows.insert(test);
            used_diagonals.insert(i - test);
            pushed= true;
            break;
        }
        if !pushed {
            arr.push(-1);
        }
    }

    let mut input = String::new();
    std::io::stdin().read_line(&mut input).unwrap();
    let n: usize = input.trim().parse().unwrap();
    let mut tests: Vec<(isize, isize)> = Vec::new();
    for _ in 0..n {
        let mut input = String::new();
        std::io::stdin().read_line(&mut input).unwrap();
        let mut iter = input.split_whitespace().map(|x| x.parse().unwrap());
        tests.push((iter.next().unwrap(), iter.next().unwrap()));
    }
    /*
    let mut arr = vec![vec![1; 1000]; 1000];
    'asd: for i in 0..1000 {
        for j in 0..1000 {
            if i == j {
                continue;
            }
            arr[i][j] = 2;
            for x in 0..i {
                if arr[x][j] == 2 {
                    arr[i][j] = 1;
                }
            }
            for x in 0..j {
                if arr[i][x] == 2 {
                    arr[i][j] = 1;
                }
            }
            for x in 0..i.min(j) {
                if arr[i - x - 1][j - x - 1] == 2 {
                    arr[i][j] = 1;
                }
            }
            if arr[i][j] == 2 {
                continue 'asd;
            }
        }
    }
    dbg!(&arr);
    */
    for test in tests {
        if arr[test.0 as usize] == test.1 {
            println!("second");
        } else {
            println!("first");
        }
    }
}

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
...