提出 #53432676


ソースコード 拡げる

#![allow(unused)]

fn main() {
    let n = read::<usize>();
    let m = 998_244_353;
    let arr = readv::<i64>();

    let mut pow10 = vec![];
    for i in 0..11 {
        pow10.push(10i64.pow(i) % m);
    }

    let num_digit = |mut x: i64| {
        let mut cnt = 1;
        while x >= 10 {
            cnt += 1;
            x /= 10;
        }
        cnt
    };

    let mut pref = 0;
    let mut ans = 0;
    for i in 0..n {
        let val1 = pref % m * pow10[num_digit(arr[i])] % m;
        let val2 = arr[i] * (i as i64) % m;
        ans += val1;
        ans %= m;
        ans += val2;
        ans %= m;
        pref += arr[i];
    }

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

fn read<T: std::str::FromStr>() -> T {
    let mut s = String::new();
    std::io::stdin().read_line(&mut s).ok();
    s.trim().parse().ok().unwrap()
}

fn readv<T: std::str::FromStr>() -> Vec<T> {
    read::<String>()
        .split_ascii_whitespace()
        .map(|t| t.parse().ok().unwrap())
        .collect()
}

fn reads() -> Vec<char> {
    read::<String>().chars().collect::<_>()
}

fn mapv<T, S, F: Fn(&T) -> S>(arr: &Vec<T>, f: F) -> Vec<S> {
    arr.iter().map(f).collect()
}

fn join<T: ToString>(arr: &[T], sep: &str) -> String {
    arr.iter()
        .map(|x| x.to_string())
        .collect::<Vec<String>>()
        .join(sep)
}

提出情報

提出日時
問題 D - Another Sigma Problem
ユーザ amoshuangyc
言語 Rust (rustc 1.70.0)
得点 400
コード長 1378 Byte
結果 AC
実行時間 10 ms
メモリ 6420 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 400 / 400
結果
AC × 2
AC × 22
セット名 テストケース
Sample 00_sample_01.txt, 00_sample_02.txt
All 00_sample_01.txt, 00_sample_02.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt
ケース名 結果 実行時間 メモリ
00_sample_01.txt AC 1 ms 2064 KiB
00_sample_02.txt AC 0 ms 1916 KiB
01_test_01.txt AC 8 ms 6332 KiB
01_test_02.txt AC 8 ms 6320 KiB
01_test_03.txt AC 9 ms 6368 KiB
01_test_04.txt AC 8 ms 6420 KiB
01_test_05.txt AC 8 ms 6312 KiB
01_test_06.txt AC 7 ms 6260 KiB
01_test_07.txt AC 8 ms 6408 KiB
01_test_08.txt AC 10 ms 5700 KiB
01_test_09.txt AC 9 ms 5604 KiB
01_test_10.txt AC 9 ms 5628 KiB
01_test_11.txt AC 8 ms 6200 KiB
01_test_12.txt AC 4 ms 4240 KiB
01_test_13.txt AC 6 ms 5196 KiB
01_test_14.txt AC 4 ms 3668 KiB
01_test_15.txt AC 3 ms 3544 KiB
01_test_16.txt AC 4 ms 3564 KiB
01_test_17.txt AC 1 ms 2016 KiB
01_test_18.txt AC 6 ms 5748 KiB
01_test_19.txt AC 6 ms 5660 KiB
01_test_20.txt AC 10 ms 5548 KiB