Submission #73917443


Source Code Expand

use proconio::input;

fn main() {
    input! {
        k: usize,
        m: u64,
    }

    let mod_val = m * 10007;
    let mod_9 = 9 * mod_val;

    let mut n = 0u64;

    for _ in 0..k {
        input! {
            c: u64,
            l: u64,
        }

        let pow10_9m = mod_pow(10, l, mod_9);
        let sum = (pow10_9m - 1) / 9;
        let sum = sum % mod_val;
        let pow10 = mod_pow(10, l, mod_val);
        n = (n * pow10 + c * sum) % mod_val;
    }

    println!("{}", n / m);
}

fn mod_pow(mut base: u64, mut exp: u64, m: u64) -> u64 {
    let mut result = 1u64;
    base %= m;
    
    while exp > 0 {
        if exp % 2 == 1 {
            result = (result * base) % m;
        }
        base = (base * base) % m;
        exp /= 2;
    }
    
    result
}

Submission Info

Submission Time
Task E - Simple Division
User memoka
Language Rust (rustc 1.89.0)
Score 450
Code Size 821 Byte
Status AC
Exec Time 47 ms
Memory 2112 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 450 / 450
Status
AC × 3
AC × 43
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All hand_01.txt, hand_02.txt, hand_03.txt, hand_04.txt, hand_05.txt, sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt
Case Name Status Exec Time Memory
hand_01.txt AC 1 ms 2004 KiB
hand_02.txt AC 1 ms 1888 KiB
hand_03.txt AC 1 ms 1968 KiB
hand_04.txt AC 0 ms 1992 KiB
hand_05.txt AC 0 ms 1948 KiB
sample_01.txt AC 0 ms 1972 KiB
sample_02.txt AC 1 ms 1936 KiB
sample_03.txt AC 0 ms 1940 KiB
test_01.txt AC 1 ms 1912 KiB
test_02.txt AC 38 ms 2056 KiB
test_03.txt AC 44 ms 2068 KiB
test_04.txt AC 43 ms 2076 KiB
test_05.txt AC 47 ms 2072 KiB
test_06.txt AC 43 ms 2032 KiB
test_07.txt AC 44 ms 2096 KiB
test_08.txt AC 43 ms 2016 KiB
test_09.txt AC 44 ms 2080 KiB
test_10.txt AC 43 ms 2060 KiB
test_11.txt AC 44 ms 2100 KiB
test_12.txt AC 44 ms 2060 KiB
test_13.txt AC 44 ms 2004 KiB
test_14.txt AC 44 ms 2004 KiB
test_15.txt AC 43 ms 1948 KiB
test_16.txt AC 43 ms 2060 KiB
test_17.txt AC 44 ms 2088 KiB
test_18.txt AC 44 ms 2112 KiB
test_19.txt AC 44 ms 2112 KiB
test_20.txt AC 43 ms 1876 KiB
test_21.txt AC 43 ms 1972 KiB
test_22.txt AC 43 ms 2064 KiB
test_23.txt AC 44 ms 2076 KiB
test_24.txt AC 44 ms 2096 KiB
test_25.txt AC 43 ms 2096 KiB
test_26.txt AC 44 ms 1876 KiB
test_27.txt AC 44 ms 1912 KiB
test_28.txt AC 44 ms 2068 KiB
test_29.txt AC 44 ms 2056 KiB
test_30.txt AC 44 ms 2040 KiB
test_31.txt AC 44 ms 2096 KiB
test_32.txt AC 44 ms 2100 KiB
test_33.txt AC 44 ms 1968 KiB
test_34.txt AC 43 ms 2024 KiB
test_35.txt AC 44 ms 1912 KiB