Module c
Expand description
ยงABC 367 C - Enumerate Sequences
refs: https://atcoder.jp/contests/abc367/tasks/abc367_c
use proconio::input;
fn main() {
input! {
n: usize, k: usize,
r: [usize; n],
}
let mut v = vec![1; n];
while v[0] <= r[0] {
if v.iter().sum::<usize>() % k == 0 {
println!("{}", v.iter().map(|x| x.to_string()).collect::<Vec<_>>().join(" "));
}
next(&mut v, &r);
}
}
fn next(v: &mut [usize], r: &[usize]) {
v[v.len() - 1] += 1;
let mut i = v.len() - 1;
while i > 0 {
if v[i] > r[i] {
v[i] = 1;
v[i - 1] += 1;
i -= 1;
} else {
break;
}
}
}