Submission details
Task:Ruudukko
Sender:Metabolix
Submission time:2025-09-26 18:54:50 +0300
Language:Rust (2021)
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttime
#10.00 sdetails

Code

use std::io;

// Lukee rivin syötettä ja palauttaa sen sisältämät luvut vektorina.
fn read_numbers() -> Vec<i64> {
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Luku epäonnistui");
    input
        .trim()
        .split_whitespace()
        .map(|s| s.parse().expect("Ei kelvollinen luku"))
        .collect()
}

fn main() {
    let testejä = read_numbers()[0];
    for _ in 0..testejä {
        let koko = read_numbers();
        let h = koko[0];
        let w = koko[1];
        if (w * h <= 3) || (w == 2 && h == 2) {
            println!("NO");
            continue;
        }
        let mut ruudukko: Vec<Vec<i64>> = (0..h).map(|_| (0..w).map(|_| 0).collect()).collect();
        let mut i = 1;
        for y in 0..h {
            for x in 0..w {
                if y % 2 != x % 2 {
                    ruudukko[y as usize][x as usize] = i;
                    i += 1;
                }
            }
        }
        for y in 0..h {
            for x in 0..w {
                if y % 2 == x % 2 {
                    ruudukko[y as usize][x as usize] = i;
                    i += 1;
                }
            }
        }
        println!("YES");
        for rivi in ruudukko {
            let riviteksti: Vec<String> = rivi.iter().map(|&n| n.to_string()).collect();
            println!("{}", riviteksti.join(" "));
        }
    }
}

Test details

Test 1

Verdict:

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

correct output
YES
1
NO
NO
NO
...

user output
NO
NO
NO
NO
NO
...