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 |