結果
| 問題 | No.3662 yuu Hates Sigma Problem |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-08-30 15:29:51 |
| 言語 | PyPy3 (7.3.23) |
| 結果 |
AC
|
| 実行時間 | 122 ms / 2,000 ms |
| + 20µs | |
| コード長 | 734 bytes |
| 記録 | |
| コンパイル時間 | 241 ms |
| コンパイル使用メモリ | 96,108 KB |
| 実行使用メモリ | 120,448 KB |
| 最終ジャッジ日時 | 2026-08-30 15:29:59 |
| 合計ジャッジ時間 | 7,107 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge1_0 |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| subtask1. | 20 % | AC * 19 |
| subtask2. | 30 % | AC * 13 |
| subtask3. | 50 % | AC * 49 |
| 合計 | 2.5 * 100% = 250 点 |
ソースコード
mod = 998244353
log = {1 << i: i for i in range(25)}
def to_seg(n: int):
ans = []
while n:
lsb = n & -n
ans.append((n - lsb, log[lsb]))
n -= n & -n
ans.reverse()
return ans
def solve1(n: int):
seg = to_seg(n)
ans = [0] * n
for j in range(n):
for l, w in seg:
nl = (l ^ j) >> w << w
nr = nl + (1 << w)
ans[j] += (nl + nr - 1) * (1 << w) // 2
return ans
def solve():
n = int(input())
a = tuple(map(lambda s_: int(s_), input().split()))
coe = solve1(n)
ans = sum(ai * c % mod for ai, c in zip(a, coe))
ans %= mod
return ans
case_t = 1
# case_t = int(input())
for _ in [None] * case_t:
print(solve())