提出 #72208509


ソースコード 拡げる

from math import isqrt

def main():
    s = input().strip()
    if not s:
        return
    N = int(s)
    cnt = bytearray(N + 1)

    x_max = isqrt(N // 2)
    for x in range(1, x_max + 1):
        xx = x * x
        y_max = isqrt(N - xx)
        start = x + 1
        if start > y_max:
            continue
        for y in range(start, y_max + 1):
            ssum = xx + y * y
            if cnt[ssum] == 0:
                cnt[ssum] = 1
            elif cnt[ssum] == 1:
                cnt[ssum] = 2

    goods = [str(n) for n in range(1, N + 1) if cnt[n] == 1]
    print(len(goods))
    if goods:
        print(" ".join(goods))
    else:
        print()

if __name__ == "__main__":
    main()

提出情報

提出日時
問題 C - 2026
ユーザ nishinihon
言語 Python (CPython 3.13.7)
得点 300
コード長 730 Byte
結果 AC
実行時間 724 ms
メモリ 80340 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 3
AC × 18
セット名 テストケース
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_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 02_corner_00.txt, 02_corner_01.txt, 02_corner_02.txt, 02_corner_03.txt, 02_corner_04.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 10 ms 9236 KiB
00_sample_01.txt AC 10 ms 9448 KiB
00_sample_02.txt AC 10 ms 9324 KiB
01_random_00.txt AC 290 ms 40352 KiB
01_random_01.txt AC 638 ms 72112 KiB
01_random_02.txt AC 282 ms 39976 KiB
01_random_03.txt AC 662 ms 75196 KiB
01_random_04.txt AC 174 ms 29004 KiB
01_random_05.txt AC 350 ms 45656 KiB
01_random_06.txt AC 225 ms 34424 KiB
01_random_07.txt AC 204 ms 32116 KiB
01_random_08.txt AC 333 ms 44236 KiB
01_random_09.txt AC 695 ms 78260 KiB
02_corner_00.txt AC 11 ms 9336 KiB
02_corner_01.txt AC 721 ms 80192 KiB
02_corner_02.txt AC 723 ms 80196 KiB
02_corner_03.txt AC 721 ms 80340 KiB
02_corner_04.txt AC 724 ms 80284 KiB