aizu_online_judge/dsl/
dsl_2_c.rs1#[doc(no_inline)]
2pub use competitive::data_structure::Static2DTree;
3use competitive::prelude::*;
4
5#[verify::aizu_online_judge("DSL_2_C")]
6pub fn dsl_2_c(reader: impl Read, mut writer: impl Write) {
7 let s = read_all_unchecked(reader);
8 let mut scanner = Scanner::new(&s);
9 scan!(scanner, n, xy: [(i64, i64)]);
10 let tree = Static2DTree::new(xy.take(n).enumerate().map(|(i, (x, y))| (x, y, i)));
11 scan!(scanner, q, query: [(i64, i64, i64, i64)]);
12 for (sx, tx, sy, ty) in query.take(q) {
13 let mut v = tree.range(sx..tx + 1, sy..ty + 1);
14 v.sort();
15 for v in v {
16 writeln!(writer, "{}", v).ok();
17 }
18 writeln!(writer).ok();
19 }
20}