Submission #29488217


Source Code Expand

use proconio::input;

fn main() {
    input! {
        a: usize,
        b: usize,
    };
    let modp = 1_000_000_007_usize;
    // let mut p = 1_usize;
    // for _ in 0..b {
    //     p *= a;
    //     p %= modp;
    // }
    let mut p = 1;
    let mut m = a;
    let mut n = b;
    while n != 0 {
        if (n & 1) != 0 {
            p *= m;
            p %= modp;
        }
        m *= m;
        m %= modp;
        n >>= 1;
    }
    let ans = p;
    println!("{}", ans);
}

Submission Info

Submission Time
Task 050 - Power
User bouzuya
Language Rust (1.42.0)
Score 1000
Code Size 484 Byte
Status AC
Exec Time 7 ms
Memory 2040 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1000 / 1000
Status
AC × 2
AC × 10
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All sample_01.txt, sample_02.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
Case Name Status Exec Time Memory
sample_01.txt AC 7 ms 1964 KiB
sample_02.txt AC 2 ms 2024 KiB
test_01.txt AC 1 ms 1916 KiB
test_02.txt AC 1 ms 1928 KiB
test_03.txt AC 2 ms 2040 KiB
test_04.txt AC 1 ms 2012 KiB
test_05.txt AC 1 ms 1996 KiB
test_06.txt AC 2 ms 1936 KiB
test_07.txt AC 2 ms 1972 KiB
test_08.txt AC 2 ms 1980 KiB