Cod sursa(job #3341089)

Utilizator petro123Alex Ionel petro123 Data 17 februarie 2026 20:53:56
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator rs Status done
Runda Arhiva educationala Marime 0.72 kb
use std::io::{BufWriter,Write};
use std::fs::{self,File};

macro_rules! parse_line {
    ($iter: expr, $($t: ty),+) => {{
        let line = $iter.next().unwrap();
        let mut parts = line.split_whitespace();
        ($(parts.next().unwrap().parse::<$t>().unwrap()), +)
    }};
}


fn main() -> std::io::Result<()>{
    let content = fs::read_to_string("lgput.in")?;
    let mut lines = content.lines();
    let mut writer = BufWriter::new(File::create("lgput.out")?);
    let (mut n,mut m) = parse_line!(lines, usize, usize);
    let mut ans = 1;
    while m > 0 
    {
        if m % 2 == 1 {
            ans = ans * n % 1999999973;
        }
        n = n * n;
        m /= 2;
    }
    write!(writer,"{}",ans)?;
    Ok(())
}