Основное
 
 
Отправитель Задача Язык Вердикт Время Память Отослано Протест.  
120346640 Дорешивание:
memoryallocator
1066E - 14 Rust Неправильный ответ на тесте 3 31 мс 544 КБ 2021-06-23 10:36:36 2021-06-23 10:36:36
→ Исходный код
use std::*;
use io::{stdin, Read};

const MOD: u128 = 998_244_353;

fn add(x: u64, y: u64) -> u64 {
    (x as u128 + y as u128).rem_euclid(MOD) as u64
}

fn main() {
    let mut n_and_m = String::new();
    stdin().read_line(&mut n_and_m);

    let mut n_and_m: Vec<&str> = n_and_m.trim().split(" ").collect();
    let m = n_and_m.pop().unwrap().parse::<usize>().unwrap();
    let n = n_and_m.pop().unwrap().parse::<usize>().unwrap();
    drop(n_and_m);

    let mut a = vec![b'\0'; n];
    stdin().read(&mut a);
    stdin().read_line(&mut String::new());
    a.reverse();

    let mut b = vec![b'\0'; m];
    stdin().read(&mut b);
    b.reverse();

    let mut pw: u64 = 1;
    let mut res: u64 = 0;
    let mut ans: u64 = 0;
    for (i, b) in b.into_iter().enumerate() {
        if let Some(b'1') = a.get(i) {
            res = add(res, pw);
        }
        if b == b'1' {
            ans = add(ans, res);
        }
        pw = add(pw, pw);
    }
    println!("{}", ans)
}
?
Время: ? ms, память: ? КБ
Вердикт: ?
Ввод
?
Вывод участника
?
Ответ жюри
?
Комментарий чекера
?
Диагностика
?
Показать детали тестирования