Submission #3750574


Source Code Expand

use std::cmp;

fn main() {
    let s = std::io::stdin();
    let mut sc = Scanner { reader: s.lock() };
    let n: usize = sc.read();
    let a: usize = sc.read();
    let b: usize = sc.read();
    if a + b > n + 1 || a < (n + b - 1) / b {
        println!("-1");
        return;
    }
    let mut ans = vec![];
    let mut cur = 0;
    for _ in 0..(n % b) {
        let mut lds = vec![];
        for _ in 0..b {
            lds.push(cur);
            cur += 1;
        }
        lds.reverse();
        ans.push(lds);
    }
    for _ in 0..(n / b) {
        let mut lds = vec![];
        for _ in 0..b {
            lds.push(cur);
            cur += 1;
        }
        lds.reverse();
        ans.push(lds);
    }

    let mut a = a - ans.len();
    for i in 0..ans.len() {
        let len = cmp::min(a, ans[i].len());
        ans[i][0..len].sort();
        a -= a;
        if a == 0 {
            break;
        }
    }

    for ans in ans.iter() {
        for &ans in ans.iter() {
            print!("{} ", ans + 1);
        }
    }
    println!();
}

pub struct Scanner<R> {
    reader: R,
}

impl<R: std::io::Read> Scanner<R> {
    pub fn read<T: std::str::FromStr>(&mut self) -> T {
        use std::io::Read;
        let buf = self
            .reader
            .by_ref()
            .bytes()
            .map(|b| b.unwrap())
            .skip_while(|&b| b == b' ' || b == b'\n')
            .take_while(|&b| b != b' ' && b != b'\n')
            .collect::<Vec<_>>();
        unsafe { std::str::from_utf8_unchecked(&buf) }
            .parse()
            .ok()
            .expect("Parse error.")
    }
    pub fn read_vec<T: std::str::FromStr>(&mut self, n: usize) -> Vec<T> {
        (0..n).map(|_| self.read()).collect()
    }
    pub fn chars(&mut self) -> Vec<char> {
        self.read::<String>().chars().collect()
    }
}

Submission Info

Submission Time
Task E - LISDL
User kenkoooo
Language Rust (1.15.1)
Score 0
Code Size 1917 Byte
Status WA
Exec Time 2718 ms
Memory 305276 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 700
Status
AC × 2
WA × 1
AC × 21
WA × 15
TLE × 19
Set Name Test Cases
Sample s1.txt, s2.txt, s3.txt
All 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 49.txt, 50.txt, 51.txt, 52.txt, s1.txt, s2.txt, s3.txt
Case Name Status Exec Time Memory
01.txt AC 19 ms 4860 KB
02.txt TLE 2104 ms 305276 KB
03.txt TLE 2104 ms 221436 KB
04.txt WA 3 ms 4352 KB
05.txt AC 67 ms 20724 KB
06.txt AC 2 ms 4352 KB
07.txt AC 2 ms 4352 KB
08.txt TLE 2427 ms -758176 KB
09.txt WA 35 ms 7540 KB
10.txt TLE 2124 ms -770564 KB
11.txt TLE 2129 ms -665552 KB
12.txt TLE 2203 ms -1027320 KB
13.txt TLE 2128 ms -689668 KB
14.txt TLE 2196 ms -1172472 KB
15.txt WA 186 ms 15612 KB
16.txt TLE 2231 ms -650664 KB
17.txt WA 5 ms 4468 KB
18.txt WA 20 ms 4860 KB
19.txt WA 63 ms 6652 KB
20.txt AC 2 ms 4352 KB
21.txt AC 19 ms 4860 KB
22.txt TLE 2104 ms 295676 KB
23.txt WA 215 ms 20860 KB
24.txt WA 3 ms 4352 KB
25.txt AC 67 ms 20724 KB
26.txt AC 2 ms 4352 KB
27.txt AC 2 ms 4352 KB
28.txt TLE 2601 ms -653480 KB
29.txt WA 48 ms 9324 KB
30.txt TLE 2123 ms -743940 KB
31.txt TLE 2104 ms 291068 KB
32.txt TLE 2185 ms -839928 KB
33.txt TLE 2128 ms -662704 KB
34.txt TLE 2177 ms -1124216 KB
35.txt WA 48 ms 6140 KB
36.txt TLE 2718 ms -653732 KB
37.txt WA 5 ms 4592 KB
38.txt WA 21 ms 4988 KB
39.txt WA 63 ms 6524 KB
40.txt AC 2 ms 4352 KB
41.txt AC 2 ms 4352 KB
42.txt AC 2 ms 4352 KB
43.txt AC 2 ms 4352 KB
44.txt WA 2 ms 4352 KB
45.txt TLE 2718 ms -652848 KB
46.txt TLE 2621 ms -655032 KB
47.txt AC 4 ms 4464 KB
48.txt AC 45 ms 5884 KB
49.txt AC 7 ms 4476 KB
50.txt AC 2 ms 4352 KB
51.txt AC 2 ms 4352 KB
52.txt AC 2 ms 4352 KB
s1.txt WA 2 ms 4352 KB
s2.txt AC 2 ms 4352 KB
s3.txt AC 2 ms 4352 KB