Submission #19018414


Source Code Expand

#[allow(unused_imports)]
use std::cmp::*;

macro_rules! input {
    (source = $s:expr, $($r:tt)*) => {
        let mut iter = $s.split_whitespace();
        input_inner!{iter, $($r)*}
    };
    ($($r:tt)*) => {
        let s = {
            use std::io::Read;
            let mut s = String::new();
            std::io::stdin().read_to_string(&mut s).unwrap();
            s
        };
        let mut iter = s.split_whitespace();
        input_inner!{iter, $($r)*}
    };
}

macro_rules! input_inner {
    ($iter:expr) => {};
    ($iter:expr, ) => {};
    ($iter:expr, $var:ident : $t:tt $($r:tt)*) => {
        let $var = read_value!($iter, $t);
        input_inner!{$iter $($r)*}
    };
}

macro_rules! read_value {
    ($iter:expr, ( $($t:tt),* )) => {
        ( $(read_value!($iter, $t)),* )
    };

    ($iter:expr, [ $t:tt ; $len:expr ]) => {
        (0..$len).map(|_| read_value!($iter, $t)).collect::<Vec<_>>()
    };

    ($iter:expr, chars) => {
        read_value!($iter, String).chars().collect::<Vec<char>>()
    };

    ($iter:expr, usize1) => {
        read_value!($iter, usize) - 1
    };

    ($iter:expr, $t:ty) => {
        $iter.next().unwrap().parse::<$t>().expect("Parse error")
    };
}

static MOD: i64 = 1_000_000_007;

fn mod_pow(mut x: i64, mut n: i64) -> i64 {
    let mut ret = 1;
    while n > 0 {
        if n & 1 == 1 {
            ret *= x;
            ret %= MOD;
        }
        x *= x;
        x %= MOD;
        n >>= 1;
    }
    ret
}

fn main() {
    input! {
        n: i64,
    }
    let u = mod_pow(10, n);
    let a = mod_pow(9, n);
    let b = mod_pow(8, n);
    let ans = (u - a - a + b + 2 * MOD) % MOD;

    println!("{}", ans);
}

Submission Info

Submission Time
Task C - Ubiquity
User imulan
Language Rust (1.42.0)
Score 300
Code Size 1760 Byte
Status AC
Exec Time 7 ms
Memory 2128 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 3
AC × 20
Set Name Test Cases
Sample sample00, sample01, sample02
All case03, case04, case05, case06, case07, case08, case09, case10, case11, case12, case13, case14, case15, case16, case17, case18, case19, sample00, sample01, sample02
Case Name Status Exec Time Memory
case03 AC 7 ms 2008 KiB
case04 AC 1 ms 2128 KiB
case05 AC 1 ms 1980 KiB
case06 AC 1 ms 2108 KiB
case07 AC 2 ms 1988 KiB
case08 AC 1 ms 2048 KiB
case09 AC 2 ms 1904 KiB
case10 AC 2 ms 2032 KiB
case11 AC 2 ms 1992 KiB
case12 AC 2 ms 2048 KiB
case13 AC 1 ms 2024 KiB
case14 AC 3 ms 2076 KiB
case15 AC 1 ms 2048 KiB
case16 AC 1 ms 2108 KiB
case17 AC 2 ms 2120 KiB
case18 AC 1 ms 1972 KiB
case19 AC 1 ms 2036 KiB
sample00 AC 2 ms 2048 KiB
sample01 AC 1 ms 1944 KiB
sample02 AC 1 ms 2016 KiB