提出 #68381154


ソースコード 拡げる

#![allow(unused)]

use proconio::input;
use proconio::marker::Chars;

fn main() {
    input! {
        n: usize,
        s: Chars,
    }

    let f = (0..n)
        .map(|i| if s[i] == '0' { 1 } else { 0 })
        .collect::<Vec<i64>>();

    let mut pref = vec![f[0]; n];
    for i in 1..n {
        pref[i] = pref[i - 1] + f[i];
    }

    // s[i..=j] is good if number of 0 in s[i..=j] is even
    // = (pref[j] - pref[i - 1] is even) or (pref[j] is even)

    let mut ans = 0;
    let mut cnt = vec![0 as i64; 2];
    for j in 0..n {
        let m = (pref[j] % 2) as usize;

        ans += cnt[m];
        if m == 0 {
            ans += 1;
        }

        cnt[m] += 1;
    }

    println!("{ans}");
}

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

提出情報

提出日時
問題 D - XNOR Operation
ユーザ amoshuangyc
言語 Rust (rustc 1.70.0)
得点 425
コード長 912 Byte
結果 AC
実行時間 3 ms
メモリ 6080 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 425 / 425
結果
AC × 3
AC × 29
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_small_00.txt, 01_small_01.txt, 01_small_02.txt, 01_small_03.txt, 01_small_04.txt, 01_small_05.txt, 02_random_00.txt, 02_random_01.txt, 02_random_02.txt, 02_random_03.txt, 02_random_04.txt, 02_random_05.txt, 02_random_06.txt, 02_random_07.txt, 02_random_08.txt, 02_random_09.txt, 03_corner_00.txt, 03_corner_01.txt, 03_corner_02.txt, 03_corner_03.txt, 03_corner_04.txt, 03_corner_05.txt, 03_corner_06.txt, 03_corner_07.txt, 03_corner_08.txt, 03_corner_09.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 1 ms 2092 KiB
00_sample_01.txt AC 0 ms 2068 KiB
00_sample_02.txt AC 0 ms 1912 KiB
01_small_00.txt AC 0 ms 2100 KiB
01_small_01.txt AC 0 ms 1944 KiB
01_small_02.txt AC 0 ms 1808 KiB
01_small_03.txt AC 0 ms 1972 KiB
01_small_04.txt AC 0 ms 1900 KiB
01_small_05.txt AC 0 ms 1900 KiB
02_random_00.txt AC 3 ms 5600 KiB
02_random_01.txt AC 3 ms 5872 KiB
02_random_02.txt AC 3 ms 5668 KiB
02_random_03.txt AC 3 ms 6008 KiB
02_random_04.txt AC 3 ms 5712 KiB
02_random_05.txt AC 3 ms 5876 KiB
02_random_06.txt AC 3 ms 5592 KiB
02_random_07.txt AC 3 ms 6080 KiB
02_random_08.txt AC 3 ms 5512 KiB
02_random_09.txt AC 3 ms 6036 KiB
03_corner_00.txt AC 3 ms 5872 KiB
03_corner_01.txt AC 3 ms 5984 KiB
03_corner_02.txt AC 3 ms 6020 KiB
03_corner_03.txt AC 3 ms 6024 KiB
03_corner_04.txt AC 3 ms 5988 KiB
03_corner_05.txt AC 3 ms 5996 KiB
03_corner_06.txt AC 3 ms 5928 KiB
03_corner_07.txt AC 3 ms 6004 KiB
03_corner_08.txt AC 3 ms 5932 KiB
03_corner_09.txt AC 3 ms 6016 KiB