Submission #54109524


Source Code Expand

n, m = map(int, input().split())
ans = 0
mod = 998244353
tmp = 0
for i in range(70):
    if m>>i&1 == 0:
        if n>>i&1:
            tmp += 1<<i
            tmp %= mod
        continue
    ans += (1 << i)*(n >> i+1)
    if n>>i&1:
        ans += tmp + 1
        tmp += 1 << i
        tmp %= mod
    ans %= mod
print(ans)

# cnt = 0
# for i in range(n+1):
#     cnt += (m&i).bit_count()
# print(cnt)
# print(bin(m))

Submission Info

Submission Time
Task D - Masked Popcount
User noriaoki
Language Python (PyPy 3.10-v7.3.12)
Score 400
Code Size 439 Byte
Status AC
Exec Time 55 ms
Memory 76908 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 49
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt
Case Name Status Exec Time Memory
sample_01.txt AC 54 ms 76344 KiB
sample_02.txt AC 54 ms 76548 KiB
sample_03.txt AC 54 ms 76740 KiB
test_01.txt AC 55 ms 76436 KiB
test_02.txt AC 53 ms 76708 KiB
test_03.txt AC 54 ms 76544 KiB
test_04.txt AC 54 ms 76700 KiB
test_05.txt AC 55 ms 76488 KiB
test_06.txt AC 55 ms 76308 KiB
test_07.txt AC 54 ms 76820 KiB
test_08.txt AC 54 ms 76772 KiB
test_09.txt AC 54 ms 76576 KiB
test_10.txt AC 54 ms 76596 KiB
test_11.txt AC 53 ms 76732 KiB
test_12.txt AC 54 ms 76416 KiB
test_13.txt AC 54 ms 76432 KiB
test_14.txt AC 54 ms 76400 KiB
test_15.txt AC 54 ms 76736 KiB
test_16.txt AC 53 ms 76724 KiB
test_17.txt AC 54 ms 76476 KiB
test_18.txt AC 53 ms 76408 KiB
test_19.txt AC 54 ms 76592 KiB
test_20.txt AC 54 ms 76320 KiB
test_21.txt AC 54 ms 76412 KiB
test_22.txt AC 54 ms 76768 KiB
test_23.txt AC 54 ms 76600 KiB
test_24.txt AC 54 ms 76632 KiB
test_25.txt AC 54 ms 76584 KiB
test_26.txt AC 54 ms 76368 KiB
test_27.txt AC 54 ms 76536 KiB
test_28.txt AC 54 ms 76624 KiB
test_29.txt AC 54 ms 76416 KiB
test_30.txt AC 54 ms 76768 KiB
test_31.txt AC 54 ms 76472 KiB
test_32.txt AC 54 ms 76732 KiB
test_33.txt AC 54 ms 76480 KiB
test_34.txt AC 54 ms 76572 KiB
test_35.txt AC 54 ms 76420 KiB
test_36.txt AC 54 ms 76608 KiB
test_37.txt AC 54 ms 76752 KiB
test_38.txt AC 53 ms 76696 KiB
test_39.txt AC 54 ms 76428 KiB
test_40.txt AC 54 ms 76444 KiB
test_41.txt AC 54 ms 76828 KiB
test_42.txt AC 54 ms 76504 KiB
test_43.txt AC 54 ms 76592 KiB
test_44.txt AC 54 ms 76696 KiB
test_45.txt AC 53 ms 76716 KiB
test_46.txt AC 54 ms 76908 KiB