use proconio::{input, marker::Usize1}; fn main() { input! { problems: [(i64, Usize1)], queries: [(i64, Usize1)], } let mut diffs = vec![]; let mut diffs_by_field = vec![vec![]; 100_000]; for &(a, b) in &problems { diffs.push(a); diffs_by_field[b].push(a); } diffs.sort(); for ds in &mut diffs_by_field { ds.sort(); } for &(a, b) in &queries { let mut ans = diffs.partition_point(|&x| x <= a ); ans -= diffs_by_field[b].partition_point(|&x| x <= a ); println!("{ans}"); } }