Submission details
Task:Hypyt
Sender:vulpesomnia
Submission time:2025-10-29 10:26:35 +0200
Language:Rust (2021)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
#40
#50
Test results
testverdicttimegroup
#10.00 s1, 2, 3, 4, 5details
#20.00 s1, 2, 3, 4, 5details
#30.00 s1, 2, 3, 4, 5details
#40.00 s1, 2, 3, 4, 5details
#50.00 s1, 2, 3, 4, 5details
#60.00 s2, 5details
#70.00 s2, 5details
#80.00 s2, 5details
#90.00 s3, 4, 5details
#100.00 s3, 4, 5details
#110.00 s3, 4, 5details
#120.00 s4, 5details
#130.00 s4, 5details
#140.00 s4, 5details
#150.00 s5details
#160.00 s5details
#170.00 s5details
#180.00 s5details
#190.00 s5details
#200.00 s5details
#210.00 s5details
#220.00 s1, 2, 3, 4, 5details
#230.00 s1, 2, 3, 4, 5details
#240.00 s5details
#250.00 s5details
#260.00 s5details
#270.00 s5details

Code

use std::io;
use std::collections::HashSet;

#[derive(PartialEq)]
enum MoveType {
    COLUMN,
    ROW
}

struct Move {
    index: usize,
    color: usize,
    move_type: MoveType,
}

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("failed to readline");
    let mut iter = input.trim().split_whitespace();
    let (n, m, k, q): (i64, i64, i64, i64) = (
        iter.next().unwrap().parse().unwrap(),
        iter.next().unwrap().parse().unwrap(),
        iter.next().unwrap().parse().unwrap(),
        iter.next().unwrap().parse().unwrap(),
    );

    let mut moves: Vec<Move> = Vec::new();

    for _ in 0..q {
        let mut input2 = String::new();
        io::stdin().read_line(&mut input2).expect("failed to readline");

        let inputs: Vec<&str> = input2.trim().split_whitespace().collect();
        let move_type: String = inputs[0].to_string();
        let index: usize = inputs[1].parse().unwrap();
        let color: usize = inputs[2].parse().unwrap();
        moves.push(Move {
            index: index - 1,
            color: color - 1,
            move_type: match move_type.as_str() {
                "R" => MoveType::ROW,
                "C" => MoveType::COLUMN,
                _ => panic!(),
            },
        });
    }

    // Movepool split into two different categories.
    let mut r_moves: HashSet<usize> = HashSet::new();
    let mut c_moves: HashSet<usize> = HashSet::new();
    let mut colors = vec![0; k as usize];
    let mut collective_painted: i64 = 0;
    let paint_cap: i64 = n*m;
    let mut c_size: i64 = 0;
    let mut r_size: i64 = 0;
    for pmove in moves.iter().rev() {
        if pmove.move_type == MoveType::ROW {
            if r_moves.contains(&pmove.index) {
                continue;
            }
            collective_painted += m - c_size as i64;
            colors[pmove.color] += m - c_size as i64;
            r_moves.insert(pmove.index);
            r_size += 1;
        } else {
            if c_moves.contains(&pmove.index) {
                continue;
            }
            collective_painted += n - r_size as i64;
            colors[pmove.color] += n - r_size as i64;
            c_moves.insert(pmove.index);
            c_size += 1;
        }
        if collective_painted == paint_cap {
            break;
        }
    }
    let mut output: String = String::new();
    for color in colors {
        output.push_str(color.to_string().as_str());
        output.push_str(" ");
    }
    output.pop();
    println!("{}", output);
}

Test details

Test 1 (public)

Group: 1, 2, 3, 4, 5

Verdict:

input
4 6 5
.*.***
*...**
*****.
*..*.*
...

correct output
1
0
3
3
-1

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 2

Group: 1, 2, 3, 4, 5

Verdict:

input
10 10 10
..........
.....*....
........*.
*.*....*..
...

correct output
1
2
1
2
2
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 3

Group: 1, 2, 3, 4, 5

Verdict:

input
10 10 10
*...***.**
*****.*...
**..**.**.
..**.**.*.
...

correct output
1
2
2
1
2
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 4

Group: 1, 2, 3, 4, 5

Verdict:

input
10 10 10
***.*.****
**********
*.********
.*.***.**.
...

correct output
3
4
2
3
4
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 5

Group: 1, 2, 3, 4, 5

Verdict:

input
10 10 1
.****.****
**.**..***
**********
*******..*
...

correct output
7

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 6

Group: 2, 5

Verdict:

input
250 250 250
.*...*.....*******..**...*.......

correct output
2
3
3
2
2
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 7

Group: 2, 5

Verdict:

input
250 250 250
...*......**.**.*.*..**..*..**...

correct output
2
2
2
2
3
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 8

Group: 2, 5

Verdict:

input
250 250 250
**..**..****.****.*.***.***..*...

correct output
2
3
3
3
3
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 9

Group: 3, 4, 5

Verdict:

input
40 40 200000
...*.**.*..*.............*.*.....

correct output
2
2
2
2
2
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 10

Group: 3, 4, 5

Verdict:

input
40 40 200000
**.**..*.*.*.******....****.*....

correct output
2
1
3
2
2
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 11

Group: 3, 4, 5

Verdict:

input
40 40 200000
.*.*.**.*****.***.*.****.**.**...

correct output
3
3
3
3
3
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 12

Group: 4, 5

Verdict:

input
80 80 200000
*....**.***..****...*.....*......

correct output
2
2
2
2
2
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 13

Group: 4, 5

Verdict:

input
80 80 200000
.***.*..*.***..*****....**...*...

correct output
3
2
2
3
2
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 14

Group: 4, 5

Verdict:

input
80 80 200000
*******.*****.*..*..****...***...

correct output
2
3
1
2
2
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 15

Group: 5

Verdict:

input
250 250 200000
*....*..*..*..**..*.........**...

correct output
3
2
2
2
2
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 16

Group: 5

Verdict:

input
250 250 200000
..*....*..*......*.**.*.*..***...

correct output
2
2
2
2
2
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 17

Group: 5

Verdict:

input
250 250 200000
*..*.*****.*********.****.****...

correct output
3
3
2
2
2
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 18

Group: 5

Verdict:

input
250 250 200000
*********.**********.******.**...

correct output
3
3
3
3
3
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 19

Group: 5

Verdict:

input
250 250 200000
.*****************************...

correct output
104
422
145
93
65
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 20

Group: 5

Verdict:

input
250 250 200000
..****************************...

correct output
57
155
38
65
98
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 21

Group: 5

Verdict:

input
250 250 200000
.*****************************...

correct output
498
498
498
498
498
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 22

Group: 1, 2, 3, 4, 5

Verdict:

input
10 1 10
*
*
.
*
...

correct output
0
1
1
0
0
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 23

Group: 1, 2, 3, 4, 5

Verdict:

input
1 10 10
........*.
1 7 1 10
1 4 1 7
1 5 1 1
...

correct output
1
1
1
1
1
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 24

Group: 5

Verdict:

input
250 1 200000
*
.
*
.
...

correct output
1
1
1
1
1
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 25

Group: 5

Verdict:

input
1 250 200000
*.*.*...*.*.**.***..**.*.*..**...

correct output
1
1
1
1
1
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 26

Group: 5

Verdict:

input
250 250 200000
.................................

correct output
2
2
2
2
2
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Test 27

Group: 5

Verdict:

input
250 250 200000
******************************...

correct output
0
0
0
0
0
...

user output
(empty)

Error:
thread 'main' panicked at input/code.rs:24:21:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace