Submission details
Task:Maalaus
Sender:Jaksu
Submission time:2025-10-28 20:25:38 +0200
Language:Rust (2021)
Status:COMPILE ERROR

Compiler report

warning: unused variable: `colvector`
  --> input/code.rs:10:13
   |
10 |     let mut colvector: Vec<Vec<usize>> = vec!();
   |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_colvector`
   |
   = note: `#[warn(unused_variables)]` on by default

warning: unused variable: `colordata`
  --> input/code.rs:33:13
   |
33 |         let colordata = parse_input(&input);
   |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_colordata`

warning: variable does not need to be mutable
  --> input/code.rs:10:9
   |
10 |     let mut colvector: Vec<Vec<usize>> = vec!();
   |         ----^^^^^^^^^
   |         |
   |         help: remove this `mut`
   |
   = note: `#[warn(unused_mut)]` on by default

error[E0596]: cannot borrow `vec` as mutable, as it is not declared as mutable
  --> input/code.rs:15:9
   |
15 |         vec.push(0);
   |         ^^^ cannot borrow as mutable
   |
help: consider changing this to be mutable
   |
14 |...

Code

use std::io;

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Failed to read input");

    let data: Vec<usize> = parse_data(&input);

    let mut rowvector: Vec<Vec<usize>> = vec!();
    let mut colvector: Vec<Vec<usize>> = vec!();
    let mut colorvector: Vec<usize> = vec!();

    for _i in 0..data[0] {
        let vec = Vec::new();
        vec.push(0);
        rowvector.push(vec);
    }

    for _i in 0..data[1] {
        let vec = Vec::new();
        vec.push(0);
        rowvector.push(vec);
    }

    for _i in 0..data[2] {
        colorvector.push(0);
    }

    for _i in 0..data[3] {
        input.clear();
        io::stdin().read_line(&mut input).expect("Failed to read input");

        let colordata = parse_input(&input);
    }
}

pub fn parse_data(input: &String) -> Vec<usize> {
    let datavector = input.split_ascii_whitespace().map(|e| e.parse::<usize>().unwrap()).collect();
    return datavector
}

pub fn parse_input(input: &String) -> (bool, usize, usize) {
    let datavector: Vec<&str> = input.split_ascii_whitespace().collect();
    let command = match datavector[0] {
        "R" => true,
        "C" => false,
        _ => false,
    };

    let index = datavector[1].parse::<usize>().unwrap();
    let color = datavector[2].parse::<usize>().unwrap();

    return (command, index, color);
}