結果

問題 No.3662 yuu Hates Sigma Problem
コンテスト
ユーザー InTheBloom
提出日時 2026-08-30 14:39:23
言語 D
(dmd 2.113.0)
コンパイル:
dmd -fPIE -m64 -w -wi -O -release -inline -I/opt/dmd/src/druntime/import/ -I/opt/dmd/src/phobos -L-L/opt/dmd/linux/lib64/ -fPIC _filename_
実行:
./Main
結果
WA  
実行時間 -
コード長 1,000 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 3,155 ms
コンパイル使用メモリ 190,336 KB
実行使用メモリ 12,168 KB
最終ジャッジ日時 2026-08-30 14:39:33
合計ジャッジ時間 6,426 ms
ジャッジサーバーID
(参考情報)
judge2_1 / judge1_0
このコードへのチャレンジ
(要ログイン)
サブタスク 配点 結果
subtask1. 20 % WA * 19
subtask2. 30 % WA * 13
subtask3. 50 % WA * 49
合計 2.5 * 0% = 0 点
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import std;

void main () {
    const long MOD = 998244353;
    int N = readln.chomp.to!int;
    auto A = readln.split.to!(int[]);

    foreach (i; 0 .. 10) {
        writefln("%05b", i);
    }

    // bitごとに考える
    const int B = 25;

    long ans = 0;
    foreach (b; 0 .. B) {
        int zero = N / (2 * (1 << b)) * (1 << b) + min(N % (2 * (1 << b)), 1 << b);
        int one = N - zero;

        // writeln(N / (2 * (1 << b)));
        // writefln("b: %s zero: %s one: %s", b, zero, one);

        long add = 0;
        foreach (i; 0 .. N) {
            int p = ((i >> b) & 1);

            int x = (p == 0 ? one : zero);
            add += 1L * (1 << b) * x % MOD * A[i] % MOD;
            add %= MOD;
        }

        ans += add;
        ans %= MOD;
    }

    writeln(ans);
}

void read (T...) (string S, ref T args) {
    import std.conv : to;
    import std.array : split;
    auto buf = S.split;
    foreach (i, ref arg; args) {
        arg = buf[i].to!(typeof(arg));
    }
}
0