library_checker/datastructure/
line_add_get_min.rs1#[doc(no_inline)]
2pub use competitive::data_structure::LineSet;
3use competitive::prelude::*;
4
5#[verify::library_checker("line_add_get_min")]
6pub fn line_add_get_min(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, q);
10 let mut cht = LineSet::new();
11 for (a, b) in scanner.iter::<(i64, i64)>().take(n) {
12 cht.insert(a, b);
13 }
14 for _ in 0..q {
15 scan!(scanner, ty);
16 if ty == 0 {
17 scan!(scanner, a: i64, b: i64);
18 cht.insert(a, b);
19 } else {
20 scan!(scanner, q: i64);
21 writeln!(writer, "{}", cht.query_min(q).unwrap()).ok();
22 }
23 }
24}