結果

問題 No.924 紲星
ユーザー sakikuroesakikuroe
提出日時 2024-05-02 13:44:46
言語 Rust
(1.77.0)
結果
AC  
実行時間 463 ms / 4,000 ms
コード長 40,406 bytes
コンパイル時間 11,243 ms
コンパイル使用メモリ 378,700 KB
実行使用メモリ 84,120 KB
最終ジャッジ日時 2024-05-02 13:45:05
合計ジャッジ時間 17,135 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
外部呼び出し有り
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 3 ms
5,248 KB
testcase_01 AC 4 ms
5,248 KB
testcase_02 AC 4 ms
5,376 KB
testcase_03 AC 4 ms
5,376 KB
testcase_04 AC 4 ms
5,376 KB
testcase_05 AC 4 ms
5,376 KB
testcase_06 AC 4 ms
5,376 KB
testcase_07 AC 4 ms
5,376 KB
testcase_08 AC 462 ms
84,032 KB
testcase_09 AC 460 ms
84,120 KB
testcase_10 AC 457 ms
84,000 KB
testcase_11 AC 458 ms
84,036 KB
testcase_12 AC 463 ms
84,032 KB
testcase_13 AC 209 ms
35,460 KB
testcase_14 AC 194 ms
26,784 KB
testcase_15 AC 185 ms
29,040 KB
testcase_16 AC 220 ms
62,036 KB
testcase_17 AC 294 ms
41,780 KB
testcase_18 AC 4 ms
5,376 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#![cfg_attr(any(),rustfmt::skip)]code!{
use proconio::{input, marker::Usize1};

#[derive(Clone)]
pub struct AccumulateVector {
    accum_table: Vec<usize>,
}

impl AccumulateVector {
    pub fn new(v: &[usize]) -> Self {
        let mut accum_table = vec![0; v.len() + 1];
        for i in 0..v.len() {
            accum_table[i + 1] = accum_table[i] + v[i];
        }
        AccumulateVector { accum_table }
    }

    /// Returns:
    ///     lenght of v
    pub fn len(&self) -> usize {
        self.accum_table.len() - 1
    }

    /// Returns:
    ///     sum(v[0..i])
    pub fn rank(&self, i: usize) -> usize {
        self.accum_table[i]
    }
}

#[derive(Clone)]
pub struct WaveletMatrix {
    bit_table: Vec<AccumulateVector>,
    sorted_deduped_v: Vec<usize>,
    accum_table: Vec<AccumulateVector>,
    accum_v: AccumulateVector,
}

impl WaveletMatrix {
    const WAVELET_MATRIX_HEIGHT: usize = 18;

    pub fn new(v: &[usize]) -> Self {
        let mut sorted_deduped_v = v.to_vec();
        sorted_deduped_v.sort_unstable();
        sorted_deduped_v.dedup();
        let mut compress = v
            .iter()
            .map(|&x| sorted_deduped_v.partition_point(|&y| y < x))
            .collect::<Vec<_>>();
        let mut bit_table = vec![];
        let mut accum_table = vec![];
        for i in (0..WaveletMatrix::WAVELET_MATRIX_HEIGHT).rev() {
            bit_table.push(AccumulateVector::new(
                &compress.iter().map(|&x| (x >> i) & 1).collect::<Vec<_>>(),
            ));
            accum_table.push(AccumulateVector::new(
                &compress
                    .iter()
                    .map(|&x| {
                        if (x >> i) & 1 == 0 {
                            sorted_deduped_v[x]
                        } else {
                            0
                        }
                    })
                    .collect::<Vec<_>>(),
            ));
            compress = compress
                .iter()
                .filter(|&x| (x >> i) & 1 == 0)
                .chain(compress.iter().filter(|&x| (x >> i) & 1 == 1))
                .cloned()
                .collect::<Vec<_>>();
        }

        let accum_v = AccumulateVector::new(v);

        WaveletMatrix {
            bit_table,
            sorted_deduped_v,
            accum_table,
            accum_v,
        }
    }

    /// Returns:
    ///     v[l..r].into_iter().filter(|y| y < upper).count()
    pub fn count_less_than(&self, mut l: usize, mut r: usize, upper: usize) -> usize {
        if r <= l {
            return 0;
        }

        let upper = self.sorted_deduped_v.partition_point(|&x| x < upper);
        let mut res = 0;

        for (i, bit) in (0..Self::WAVELET_MATRIX_HEIGHT)
            .rev()
            .zip(self.bit_table.iter())
        {
            if (upper >> i) & 1 == 0 {
                l = l - bit.rank(l);
                r = r - bit.rank(r);
            } else {
                res += (r - l) - (bit.rank(r) - bit.rank(l));
                l = bit.rank(l) + (bit.len() - bit.rank(bit.len()));
                r = bit.rank(r) + (bit.len() - bit.rank(bit.len()));
            }
        }

        res
    }

    /// Returns:
    ///     v[l..r].into_iter().filter(|y| lower <= y ).count()
    pub fn count_more_than(&self, l: usize, r: usize, lower: usize) -> usize {
        if r <= l {
            return 0;
        }

        r - l - self.count_less_than(l, r, lower)
    }

    /// Returns:
    ///     {
    ///         use itertools::Itertools;
    ///         v[l..r].into_iter().sorted().nth(k)
    ///     }
    pub fn get_kth_smallest(&self, mut l: usize, mut r: usize, mut k: usize) -> Option<usize> {
        if r <= l || r - l <= k {
            return None;
        }

        let mut res = 0;

        for (i, bit) in (0..Self::WAVELET_MATRIX_HEIGHT)
            .rev()
            .zip(self.bit_table.iter())
        {
            let j = (r - l) - (bit.rank(r) - bit.rank(l));
            if k < j {
                l = l - bit.rank(l);
                r = r - bit.rank(r);
            } else {
                l = bit.rank(l) + (bit.len() - bit.rank(bit.len()));
                r = bit.rank(r) + (bit.len() - bit.rank(bit.len()));
                res |= 1 << i;
                k -= j;
            }
        }

        Some(self.sorted_deduped_v[res])
    }

    /// Returns:
    ///     {
    ///         use itertools::Itertools;
    ///         v[l..r].into_iter().sorted().rev().nth(k)
    ///     }
    pub fn get_kth_largest(&self, l: usize, r: usize, k: usize) -> Option<usize> {
        if r <= l || r - l <= k {
            return None;
        }

        self.get_kth_smallest(l, r, r - l - 1 - k)
    }

    /// Returns:
    ///     v[l..r].into_iter().filter(|y| lower <= y < upper).count()
    pub fn count(&self, l: usize, r: usize, lower: usize, upper: usize) -> usize {
        if r <= l {
            return 0;
        }

        self.count_less_than(l, r, upper) - self.count_less_than(l, r, lower)
    }

    /// Returns:
    ///     {
    ///         use itertools::Itertools;
    ///         v[l..r].into_iter().filter(|x| x < upper).sum()
    ///     }
    pub fn get_sum_less_than(&self, mut l: usize, mut r: usize, upper: usize) -> usize {
        if r <= l {
            return 0;
        }

        let upper = self.sorted_deduped_v.partition_point(|&x| x < upper);

        let mut res = 0;

        for (i, (bit, accum)) in (0..Self::WAVELET_MATRIX_HEIGHT)
            .rev()
            .zip(self.bit_table.iter().zip(self.accum_table.iter()))
        {
            if (upper >> i) & 1 == 0 {
                l = l - bit.rank(l);
                r = r - bit.rank(r);
            } else {
                res += accum.rank(r) - accum.rank(l);
                l = bit.rank(l) + (bit.len() - bit.rank(bit.len()));
                r = bit.rank(r) + (bit.len() - bit.rank(bit.len()));
            }
        }

        res
    }

    /// Returns:
    ///     {
    ///         use itertools::Itertools;
    ///         v[l..r].into_iter().filter(|x| lower <= x).sum()
    ///     }
    pub fn get_sum_more_than(&self, l: usize, r: usize, lower: usize) -> usize {
        if r <= l {
            return 0;
        }

        self.accum_v.rank(r) - self.accum_v.rank(l) - self.get_sum_less_than(l, r, lower)
    }

    /// Returns:
    ///     {
    ///         use itertools::Itertools;
    ///         v[l..r].into_iter().sorted().take(k).sum()
    ///     }
    pub fn get_sum_k_smallest(&self, mut l: usize, mut r: usize, mut k: usize) -> Option<usize> {
        if r <= l || r - l < k {
            return None;
        }

        let mut res = 0;
        let mut kth = 0;

        for (i, (bit, sum)) in (0..Self::WAVELET_MATRIX_HEIGHT)
            .rev()
            .zip(self.bit_table.iter().zip(self.accum_table.iter()))
        {
            let j = (r - l) - (bit.rank(r) - bit.rank(l));
            if k < j {
                l = l - bit.rank(l);
                r = r - bit.rank(r);
            } else {
                res += sum.rank(r);
                res -= sum.rank(l);
                l = bit.rank(l) + (bit.len() - bit.rank(bit.len()));
                r = bit.rank(r) + (bit.len() - bit.rank(bit.len()));
                kth |= 1 << i;
                k -= j;
            }
        }

        res += k * kth;

        Some(res)
    }

    /// Returns:
    ///     {
    ///         use itertools::Itertools;
    ///         v[l..r].into_iter().sorted().rev().take(k).sum()
    ///     }
    pub fn get_sum_k_largest(&self, l: usize, r: usize, k: usize) -> Option<usize> {
        if r <= l || r - l < k {
            return None;
        }

        Some(
            self.accum_v.rank(r)
                - self.accum_v.rank(l)
                - self.get_sum_k_smallest(l, r, r - l - k).unwrap(),
        )
    }

    /// Returns:
    ///     {
    ///         use itertools::Itertools;
    ///         v[l..r].into_iter().filter(|x| lower <= x < upper).sum()
    ///     }
    pub fn get_sum(&self, l: usize, r: usize, lower: usize, upper: usize) -> usize {
        if r <= l {
            return 0;
        }

        self.get_sum_less_than(l, r, upper) - self.get_sum_less_than(l, r, lower)
    }

    /// Returns:
    ///     v[l..r].map(|y| y.abs_diff(x)).sum()
    pub fn get_sum_abs_diff(&self, l: usize, r: usize, x: usize) -> usize {
        let c = self.count_less_than(l, r, x);
        let d = r - l - c;
        let sum_less_than = self.get_sum_less_than(l, r, x);
        let sum_more_than: usize = self.accum_v.rank(r) - self.accum_v.rank(l) - sum_less_than;
        (x * c - sum_less_than) + sum_more_than - x * d
    }
}

fn main() {
    input! {
        n: usize, q: usize,
        a: [isize; n],
    }

    let wm = WaveletMatrix::new(
        &a.iter()
            .cloned()
            .map(|x| 2 * (x + 1000000000) as usize)
            .collect::<Vec<_>>(),
    );

    let mut ans = vec![];

    for _ in 0..q {
        input! {
            l: Usize1, r: usize,
        }

        if (r - l) % 2 == 1 {
            let mid = wm.get_kth_largest(l, r, (r - l) / 2).unwrap();
            ans.push(wm.get_sum_abs_diff(l, r, mid) / 2);
        } else {
            let mid0 = wm.get_kth_largest(l, r, (r - l) / 2 - 1).unwrap();
            let mid1 = wm.get_kth_largest(l, r, (r - l) / 2).unwrap();
            ans.push(wm.get_sum_abs_diff(l, r, (mid0 + mid1) / 2) / 2);
        }
    }

    println!(
        "{}",
        ans.into_iter()
            .map(|x| x.to_string())
            .collect::<Vec<_>>()
            .join("\n")
    );
}
}
fn main()->std::io::Result<()>{use std::{env::temp_dir,fs::File,io::Write,process::{exit,Command}};let e=temp_dir().join("binD6146879");let mut b=Vec::with_capacity(B.len()*8/6);let mut x=0;let mut t=vec![64;256];for i in 0..64{t[b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[i]as usize]=i as u8;}for(i,c)in B.iter().map(|&c|t[c as usize]).filter(|&c|c<64).enumerate(){x=match i%4{0=>c<<2,1=>{b.push(x|c>>4);c<<4}2=>{b.push(x|c>>2);c<<6}_=>{b.push(x|c);0}}}Write::write_all(&mut File::create(&e)?,&b)?;#[cfg(unix)]std::fs::set_permissions(&e,std::os::unix::fs::PermissionsExt::from_mode(0o755))?;exit(Command::new(&e).status()?.code().unwrap())}#[macro_export]macro_rules!code{($($t:tt)*)=>{}}const B:&[u8]=b"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";
0