提出 #8875457


ソースコード 拡げる

// Practice AtCoder
// author: Leonardone @ NEETSDKASU

fn main() {
    let mut stdin = String::new();
    std::io::Read::read_to_string(&mut std::io::stdin(), &mut stdin).unwrap();
    let mut stdin = stdin.split_whitespace();
    let mut get = || stdin.next().unwrap();
    macro_rules! get {
        ($t:ty) => (get().parse::<$t>().unwrap());
        () => (get!(i64));
    }
    
    let n = get!();
    let mut vs = vec![0; 60];
    for _ in 0..n {
        let p = get!();
        for i in 0..60 {
            vs[i] += (p >> i) & 1;
        }
    }
    let mut ans = 0;
    const MOD: i64 = 1e9 as i64 + 7;
    let mut p = 1;
    for ones in vs {
        let zeros = n - ones;
        ans += (zeros * ones % MOD) * p % MOD;
        ans %= MOD;
        p *= 2;
        p %= MOD;
    }
    println!("{}", ans);
}

提出情報

提出日時
問題 D - Xor Sum 4
ユーザ neetsdkasu
言語 Rust (1.15.1)
得点 400
コード長 847 Byte
結果 AC
実行時間 60 ms
メモリ 13560 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 400 / 400
結果
AC × 3
AC × 21
セット名 テストケース
Sample sample_01, sample_02, sample_03
All corner_01, corner_02, corner_03, random_11, random_12, random_13, random_14, random_15, random_21, random_22, random_23, random_24, random_25, random_31, random_32, random_33, random_34, random_35, sample_01, sample_02, sample_03
ケース名 結果 実行時間 メモリ
corner_01 AC 9 ms 4352 KiB
corner_02 AC 17 ms 4352 KiB
corner_03 AC 19 ms 6396 KiB
random_11 AC 2 ms 4352 KiB
random_12 AC 2 ms 4352 KiB
random_13 AC 2 ms 4352 KiB
random_14 AC 2 ms 4352 KiB
random_15 AC 2 ms 4352 KiB
random_21 AC 7 ms 4352 KiB
random_22 AC 7 ms 4352 KiB
random_23 AC 7 ms 4352 KiB
random_24 AC 7 ms 4352 KiB
random_25 AC 7 ms 4352 KiB
random_31 AC 60 ms 13560 KiB
random_32 AC 60 ms 13560 KiB
random_33 AC 60 ms 13560 KiB
random_34 AC 60 ms 13560 KiB
random_35 AC 60 ms 13560 KiB
sample_01 AC 2 ms 4352 KiB
sample_02 AC 2 ms 4352 KiB
sample_03 AC 2 ms 4352 KiB