Submission #1405099


Source Code Expand

mod reader {
    use std::fmt::Debug;
    use std::str::FromStr;
    use std::collections::VecDeque;
    use std::io::{self, Read};

    fn _read_line() -> String {
        let mut buf = String::new();
        let _ = io::stdin().read_to_string(&mut buf);
        buf
    }

    fn _read_vec_deque_string() -> VecDeque<String> {
        _read_line()
            .split_whitespace()
            .map(|s| s.to_string())
            .collect()
    }

    #[allow(dead_code)]
    pub struct Reader {
        buf: VecDeque<String>,
    }

    #[allow(dead_code)]
    impl Reader {
        pub fn new() -> Reader {
            Reader { buf: VecDeque::new() }
        }

        fn update_buf(&mut self) {
            if self.buf.is_empty() {
                self.buf = _read_vec_deque_string();
            }
        }

        pub fn next<T>(&mut self) -> T
            where
                T: FromStr,
                T::Err: Debug,
        {
            self.update_buf();
            self.buf.pop_front().unwrap().parse::<T>().unwrap()
        }

        pub fn next_n<T>(&mut self, n: usize) -> Vec<T>
            where
                T: FromStr,
                T::Err: Debug,
        {
            let mut vec: Vec<T> = Vec::with_capacity(n);

            for _ in 0..n {
                vec.push(self.next());
            }
            vec
        }
    }
}

#[allow(unused_macros)]
macro_rules! p {
    ([$($x:expr), *]) => {{
        let mut f = true;
        $(
            print!("{}{}", if f {""} else {" "}, $x);
            f = false;
        )*
        print!("\n");
    }};
    ($x:expr) => {{
        let mut f = true;
        for a in $x.iter() {
            print!("{}{}", if f {""} else {" "}, a);
            f = false;
        }
        print!("\n");
    }};
}

trait ToChars {
    fn to_chars(&self) -> Vec<char>;
}

impl ToChars for String {
    fn to_chars(&self) -> Vec<char> {
        self.chars().collect::<Vec<char>>()
    }
}

fn main() {
    let mut r = reader::Reader::new();

    const MOD: i32 = (1e9 + 7.) as i32;

    let n = r.next();
    let k = r.next();

    let mut dp = vec![vec![0; k + 1]; n + 1];
    dp[0][0] = 1;

    let d = if n > k {k} else {1} + 1;
    let k = k % n;

    for i in 0..n {
        for j in 0..k + 1 {
            for l in 0..d {
                if (j + l > k) {
                    continue;
                }
                dp[i+1][j+l] += dp[i][j];
                dp[i+1][j+l] %= MOD;
            }
        }
    }

    p!([dp[n][k]]);
}

Submission Info

Submission Time
Task B - 高橋幼稚園
User yuusti
Language Rust (1.15.1)
Score 100
Code Size 2621 Byte
Status AC
Exec Time 3 ms
Memory 4352 KB

Compile Error

warning: unnecessary parentheses around `if` condition, #[warn(unused_parens)] on by default
   --> ./Main.rs:108:20
    |
108 |                 if (j + l > k) {
    |                    ^^^^^^^^^^^

warning: value assigned to `f` is never read, #[warn(unused_assignments)] on by default
   --> ./Main.rs:67:13
    |
67  |             f = false;
    |             ^
...
117 |     p!([dp[n][k]]);
    |     --------------- in this macro invocation

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 80 / 80 20 / 20
Status
AC × 3
AC × 21
AC × 33
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt
Subtask1 subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt
Subtask2 subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 2 ms 4352 KB
subtask0_sample_02.txt AC 2 ms 4352 KB
subtask0_sample_03.txt AC 2 ms 4352 KB
subtask1_01.txt AC 2 ms 4352 KB
subtask1_02.txt AC 2 ms 4352 KB
subtask1_03.txt AC 2 ms 4352 KB
subtask1_04.txt AC 2 ms 4352 KB
subtask1_05.txt AC 2 ms 4352 KB
subtask1_06.txt AC 2 ms 4352 KB
subtask1_07.txt AC 2 ms 4352 KB
subtask1_08.txt AC 2 ms 4352 KB
subtask1_09.txt AC 2 ms 4352 KB
subtask1_10.txt AC 2 ms 4352 KB
subtask1_11.txt AC 2 ms 4352 KB
subtask1_12.txt AC 2 ms 4352 KB
subtask1_13.txt AC 2 ms 4352 KB
subtask1_14.txt AC 2 ms 4352 KB
subtask1_15.txt AC 2 ms 4352 KB
subtask1_16.txt AC 2 ms 4352 KB
subtask1_17.txt AC 2 ms 4352 KB
subtask1_18.txt AC 2 ms 4352 KB
subtask1_19.txt AC 2 ms 4352 KB
subtask2_01.txt AC 2 ms 4352 KB
subtask2_02.txt AC 2 ms 4352 KB
subtask2_03.txt AC 3 ms 4352 KB
subtask2_04.txt AC 2 ms 4352 KB
subtask2_05.txt AC 2 ms 4352 KB
subtask2_06.txt AC 2 ms 4352 KB
subtask2_07.txt AC 2 ms 4352 KB
subtask2_08.txt AC 2 ms 4352 KB
subtask2_09.txt AC 2 ms 4352 KB
subtask2_10.txt AC 2 ms 4352 KB
subtask2_11.txt AC 2 ms 4352 KB