Submission #54134771


Source Code Expand

use std::cmp::min;

use proconio::input;

fn main() {
    // N
    // A_1 A_2 .. A_N
    input! {
        n: usize,
        mut a: [u64; n],
    }
    a.sort();
    let max_a = a[n - 1];
    let mut valcount = vec![0; max_a as usize + 1];
    for i in 0..n {
        valcount[a[i] as usize] += 1;
    }
    let mut cum_valcount = vec![0; max_a as usize + 1];
    for i in 1..max_a as usize + 1 {
        cum_valcount[i] = cum_valcount[i - 1] + valcount[i];
    }
    // println!("{:?}", valcount);
    // println!("{:?}", cum_valcount);
    let mut ans = 0;
    let mut prev = 0;
    let mut prev_ans = 0;
    for i in 0..n {
        let cur = a[i];
        if cur == prev {
            prev_ans -= 1;
            // println!("i: {}, prev_ans:{} ", i, prev_ans);
            ans += prev_ans;
        } else {
            prev = cur;
            prev_ans = 0;
            for d in 1..=max_a / cur {
                let from = min(d * cur, max_a + 1);
                let to = min((d + 1) * cur - 1, max_a);
                let count = cum_valcount[to as usize] - cum_valcount[from as usize - 1];
                // println!("i: {}, d:{} count:{} ", i, d, count);
                if count > 0 {
                    prev_ans += d * count;
                }
            }
            prev_ans -= 1; // Remove A[i]/A[i] pair
                           // println!("i: {}, prev_ans:{} ", i, prev_ans);
            ans += prev_ans;
        }
    }
    println!("{}", ans);
}

Submission Info

Submission Time
Task E - Max/Min
User taskooh
Language Rust (rustc 1.70.0)
Score 475
Code Size 1468 Byte
Status AC
Exec Time 69 ms
Memory 20492 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 475 / 475
Status
AC × 3
AC × 25
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All min_01.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, sample_01.txt, sample_02.txt, sample_03.txt
Case Name Status Exec Time Memory
min_01.txt AC 0 ms 1924 KiB
random_01.txt AC 69 ms 20224 KiB
random_02.txt AC 50 ms 18440 KiB
random_03.txt AC 68 ms 20208 KiB
random_04.txt AC 68 ms 19976 KiB
random_05.txt AC 69 ms 20244 KiB
random_06.txt AC 67 ms 19980 KiB
random_07.txt AC 69 ms 20300 KiB
random_08.txt AC 43 ms 18068 KiB
random_09.txt AC 69 ms 20276 KiB
random_10.txt AC 56 ms 18872 KiB
random_11.txt AC 69 ms 20296 KiB
random_12.txt AC 64 ms 19624 KiB
random_13.txt AC 35 ms 20492 KiB
random_14.txt AC 29 ms 19692 KiB
random_15.txt AC 36 ms 20488 KiB
random_16.txt AC 22 ms 19016 KiB
random_17.txt AC 3 ms 3912 KiB
random_18.txt AC 18 ms 12308 KiB
random_19.txt AC 12 ms 12928 KiB
random_20.txt AC 26 ms 14208 KiB
random_21.txt AC 29 ms 7596 KiB
sample_01.txt AC 1 ms 1928 KiB
sample_02.txt AC 0 ms 1932 KiB
sample_03.txt AC 3 ms 4268 KiB