Submission #3424488


Source Code Expand

/// Thank you tanakh!!!
/// https://qiita.com/tanakh/items/0ba42c7ca36cd29d0ac8
macro_rules! input {
    (source = $s:expr, $($r:tt)*) => {
        let mut iter = $s.split_whitespace();
        input_inner!{iter, $($r)*}
    };
    ($($r:tt)*) => {
        let mut s = {
            use std::io::Read;
            let mut s = String::new();
            std::io::stdin().read_to_string(&mut s).unwrap();
            s
        };
        let mut iter = s.split_whitespace();
        input_inner!{iter, $($r)*}
    };
}

macro_rules! input_inner {
    ($iter:expr) => {};
    ($iter:expr, ) => {};

    ($iter:expr, $var:ident : $t:tt $($r:tt)*) => {
        let $var = read_value!($iter, $t);
        input_inner!{$iter $($r)*}
    };
}

macro_rules! read_value {
    ($iter:expr, ( $($t:tt),* )) => {
        ( $(read_value!($iter, $t)),* )
    };

    ($iter:expr, [ $t:tt ; $len:expr ]) => {
        (0..$len).map(|_| read_value!($iter, $t)).collect::<Vec<_>>()
    };

    ($iter:expr, chars) => {
        read_value!($iter, String).chars().collect::<Vec<char>>()
    };

    ($iter:expr, usize1) => {
        read_value!($iter, usize) - 1
    };

    ($iter:expr, $t:ty) => {
        $iter.next().unwrap().parse::<$t>().expect("Parse error")
    };
}

fn main() {
    input!(k: usize);
    let n = 50;
    let mut b = vec![k / n; n];
    for i in 0..(k % n) {
        b[i] += 1;
    }

    assert_eq!(b.iter().sum::<usize>(), k);
    let mut upper_a = vec![0; n];
    let mut lower_a = vec![0; n];
    for i in 0..n {
        lower_a[i] = if (n + 1) * b[i] < k {
            0
        } else {
            (n + 1) * b[i] - k
        };
        upper_a[i] = (n + 1) * b[i] + (n - 1) - k;
    }
    println!("{}", n);
    for i in 0..n {
        if i > 0 {
            print!(" ");
        }
        print!("{}", upper_a[i]);
    }
    println!();
}

Submission Info

Submission Time
Task D - Decrease (Contestant ver.)
User kenkoooo
Language Rust (1.15.1)
Score 600
Code Size 1930 Byte
Status AC
Exec Time 2 ms
Memory 4476 KB

Compile Error

warning: variable does not need to be mutable, #[warn(unused_mut)] on by default
  --> ./Main.rs:9:13
   |
9  |         let mut s = {
   |             ^^^^^
...
53 |     input!(k: usize);
   |     ----------------- in this macro invocation

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 5
AC × 25
Set Name Test Cases
Sample example0, example1, example2, example3, example4
All corner0, corner1, corner2, corner3, corner4, corner5, corner6, corner7, corner8, corner9, example0, example1, example2, example3, example4, rand0, rand1, rand2, rand3, rand4, rand5, rand6, rand7, rand8, rand9
Case Name Status Exec Time Memory
corner0 AC 2 ms 4352 KB
corner1 AC 2 ms 4352 KB
corner2 AC 2 ms 4352 KB
corner3 AC 2 ms 4352 KB
corner4 AC 2 ms 4476 KB
corner5 AC 2 ms 4352 KB
corner6 AC 2 ms 4352 KB
corner7 AC 2 ms 4352 KB
corner8 AC 2 ms 4352 KB
corner9 AC 2 ms 4352 KB
example0 AC 2 ms 4352 KB
example1 AC 2 ms 4352 KB
example2 AC 2 ms 4352 KB
example3 AC 2 ms 4352 KB
example4 AC 2 ms 4352 KB
rand0 AC 2 ms 4352 KB
rand1 AC 2 ms 4352 KB
rand2 AC 2 ms 4352 KB
rand3 AC 2 ms 4352 KB
rand4 AC 2 ms 4352 KB
rand5 AC 2 ms 4352 KB
rand6 AC 2 ms 4352 KB
rand7 AC 2 ms 4352 KB
rand8 AC 2 ms 4352 KB
rand9 AC 2 ms 4352 KB