Submission #62805776
Source Code Expand
use itertools::Itertools; use proconio::{input, marker::Usize1}; fn main() { input!{ n: usize, q: usize, a: [u64; n], queries: [(Usize1, u64); q], } let mut ans = vec![0; q]; let mut qi = 0; let indicates = (0..q).sorted_unstable_by_key(|i| queries[*i].0).collect_vec(); let mut dp = vec![INF; n]; let mut mv = vec![INF; n]; for i in 0..n { let idx = dp.lower_bound(a[i]); dp[idx] = a[i]; mv[idx] = mv[idx].min(a[i]); while qi < q && queries[indicates[qi]].0 == i { let j = mv.lower_bound(queries[indicates[qi]].1); ans[indicates[qi]] = if j < n && mv[j] == queries[indicates[qi]].1 { j + 1 } else { j }; qi += 1; } } println!("{}", ans.iter().join("\n")); } pub static INF: u64 = 1e18 as u64; pub static DI: &[usize] = &[0, !0, 0, 1, !0, 1, !0, 1]; pub static DJ: &[usize] = &[!0, 0, 1, 0, !0, !0, 1, 1]; pub static DC: &[char] = &['L', 'U', 'R', 'D']; pub trait VecLibs<T: std::cmp::Ord> { fn lower_bound(&self, elm: T) -> usize; fn upper_bound(&self, elm: T) -> usize; } impl<T: std::cmp::Ord> VecLibs<T> for Vec<T> { fn lower_bound(&self, elm: T) -> usize { let mut left = 0; let mut right = self.len(); while left < right { let mid = (left + right) / 2; if self[mid] < elm { left = mid + 1; } else { right = mid; } } left } fn upper_bound(&self, elm: T) -> usize { let mut left = 0; let mut right = self.len(); while left < right { let mid = (left + right) / 2; if self[mid] <= elm { left = mid + 1; } else { right = mid; } } left } }
Submission Info
Submission Time | |
---|---|
Task | F - Prefix LIS Query |
User | ardRiriy |
Language | Rust (rustc 1.70.0) |
Score | 500 |
Code Size | 1859 Byte |
Status | AC |
Exec Time | 70 ms |
Memory | 19124 KiB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 500 / 500 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 00_sample_00.txt, 00_sample_01.txt |
All | 00_sample_00.txt, 00_sample_01.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 02_random2_00.txt, 02_random2_01.txt, 02_random2_02.txt, 02_random2_03.txt, 02_random2_04.txt, 03_random3_00.txt, 03_random3_01.txt, 03_random3_02.txt, 03_random3_03.txt, 03_random3_04.txt, 03_random3_05.txt, 03_random3_06.txt, 03_random3_07.txt, 03_random3_08.txt, 03_random3_09.txt, 04_handmade_00.txt, 04_handmade_01.txt, 04_handmade_02.txt, 04_handmade_03.txt, 04_handmade_04.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_sample_00.txt | AC | 1 ms | 2020 KiB |
00_sample_01.txt | AC | 1 ms | 1920 KiB |
01_random_00.txt | AC | 1 ms | 1860 KiB |
01_random_01.txt | AC | 15 ms | 11024 KiB |
01_random_02.txt | AC | 18 ms | 8400 KiB |
01_random_03.txt | AC | 16 ms | 7044 KiB |
01_random_04.txt | AC | 27 ms | 9412 KiB |
01_random_05.txt | AC | 33 ms | 10592 KiB |
01_random_06.txt | AC | 64 ms | 18628 KiB |
01_random_07.txt | AC | 64 ms | 18628 KiB |
01_random_08.txt | AC | 67 ms | 18644 KiB |
01_random_09.txt | AC | 66 ms | 18776 KiB |
01_random_10.txt | AC | 67 ms | 18680 KiB |
01_random_11.txt | AC | 62 ms | 18572 KiB |
01_random_12.txt | AC | 64 ms | 18700 KiB |
01_random_13.txt | AC | 61 ms | 18716 KiB |
01_random_14.txt | AC | 65 ms | 18624 KiB |
02_random2_00.txt | AC | 46 ms | 18828 KiB |
02_random2_01.txt | AC | 47 ms | 18816 KiB |
02_random2_02.txt | AC | 49 ms | 18632 KiB |
02_random2_03.txt | AC | 53 ms | 18656 KiB |
02_random2_04.txt | AC | 59 ms | 18772 KiB |
03_random3_00.txt | AC | 67 ms | 19124 KiB |
03_random3_01.txt | AC | 45 ms | 18416 KiB |
03_random3_02.txt | AC | 69 ms | 19096 KiB |
03_random3_03.txt | AC | 46 ms | 18460 KiB |
03_random3_04.txt | AC | 67 ms | 19016 KiB |
03_random3_05.txt | AC | 48 ms | 18292 KiB |
03_random3_06.txt | AC | 68 ms | 19096 KiB |
03_random3_07.txt | AC | 53 ms | 18456 KiB |
03_random3_08.txt | AC | 70 ms | 19120 KiB |
03_random3_09.txt | AC | 55 ms | 18712 KiB |
04_handmade_00.txt | AC | 43 ms | 18592 KiB |
04_handmade_01.txt | AC | 53 ms | 17756 KiB |
04_handmade_02.txt | AC | 42 ms | 17868 KiB |
04_handmade_03.txt | AC | 29 ms | 18060 KiB |
04_handmade_04.txt | AC | 35 ms | 18288 KiB |