Module c

Module c 

Expand description

ยงABC 418 C - Flush

refs: https://atcoder.jp/contests/abc418/tasks/abc418_c

use std::collections::HashMap;

use proconio::input;

fn main() {
    input! {
        n: usize, q: usize,
        a: [usize; n],
        b: [usize; q],
    }

    let max_a = *a.iter().max().expect("Not Empty");

    let mut map = HashMap::new();
    for ai in a {
        *map.entry(ai).or_insert(0usize) += 1;
    }

    let mut pv = vec![1];

    let mut buf = n;
    for i in 1..=max_a {
        let prev = pv.last().unwrap_or(&0);
        pv.push(prev + buf);
        buf -= map.get(&i).unwrap_or(&0);
    }

    for bi in b {
        if bi > max_a {
            println!("-1");
        } else {
            println!("{}", pv[bi - 1]);
        }
    }
}