結果

問題 No.2406 Difference of Coordinate Squared
ユーザー 👑 獅子座じゃない人獅子座じゃない人
提出日時 2023-07-14 00:50:13
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 943 ms / 2,000 ms
コード長 803 bytes
コンパイル時間 194 ms
コンパイル使用メモリ 82,560 KB
実行使用メモリ 79,744 KB
最終ジャッジ日時 2024-05-05 01:36:15
合計ジャッジ時間 18,083 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 36 ms
52,352 KB
testcase_01 AC 907 ms
76,544 KB
testcase_02 AC 912 ms
79,616 KB
testcase_03 AC 943 ms
79,744 KB
testcase_04 AC 908 ms
79,104 KB
testcase_05 AC 37 ms
52,224 KB
testcase_06 AC 444 ms
71,296 KB
testcase_07 AC 372 ms
68,992 KB
testcase_08 AC 634 ms
72,704 KB
testcase_09 AC 664 ms
73,984 KB
testcase_10 AC 866 ms
78,848 KB
testcase_11 AC 714 ms
73,088 KB
testcase_12 AC 791 ms
74,112 KB
testcase_13 AC 761 ms
76,032 KB
testcase_14 AC 831 ms
77,952 KB
testcase_15 AC 903 ms
78,592 KB
testcase_16 AC 565 ms
73,728 KB
testcase_17 AC 38 ms
51,968 KB
testcase_18 AC 176 ms
69,248 KB
testcase_19 AC 813 ms
75,392 KB
testcase_20 AC 861 ms
78,848 KB
testcase_21 AC 506 ms
71,296 KB
testcase_22 AC 344 ms
69,120 KB
testcase_23 AC 923 ms
79,360 KB
testcase_24 AC 269 ms
67,456 KB
testcase_25 AC 86 ms
65,280 KB
testcase_26 AC 40 ms
52,608 KB
testcase_27 AC 38 ms
52,352 KB
testcase_28 AC 37 ms
52,224 KB
testcase_29 AC 38 ms
52,480 KB
testcase_30 AC 41 ms
52,352 KB
testcase_31 AC 40 ms
52,864 KB
testcase_32 AC 42 ms
52,224 KB
testcase_33 AC 37 ms
52,224 KB
testcase_34 AC 40 ms
52,608 KB
testcase_35 AC 44 ms
52,608 KB
testcase_36 AC 42 ms
52,352 KB
testcase_37 AC 42 ms
52,608 KB
testcase_38 AC 43 ms
52,480 KB
testcase_39 AC 42 ms
52,480 KB
testcase_40 AC 41 ms
52,480 KB
testcase_41 AC 37 ms
52,096 KB
testcase_42 AC 39 ms
53,248 KB
testcase_43 AC 41 ms
52,352 KB
testcase_44 AC 42 ms
52,480 KB
testcase_45 AC 42 ms
52,352 KB
testcase_46 AC 39 ms
52,224 KB
testcase_47 AC 41 ms
52,608 KB
testcase_48 AC 41 ms
52,608 KB
testcase_49 AC 41 ms
52,224 KB
testcase_50 AC 42 ms
52,224 KB
testcase_51 AC 43 ms
52,480 KB
testcase_52 AC 42 ms
52,480 KB
testcase_53 AC 43 ms
52,096 KB
testcase_54 AC 43 ms
52,608 KB
testcase_55 AC 41 ms
52,224 KB
testcase_56 AC 41 ms
52,224 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import math
P=998244353

n,m=map(int,input().split())
m=abs(m)
fact=[1 for i in range(n+1)]
fact_inv=[1 for i in range(n+1)]
for i in range(2,n+1):
    fact[i]=(fact[i-1]*i)%P
    fact_inv[i]=(fact_inv[i-1]*pow(i,P-2,P))%P
ans=0
for y in range(0,n+1):
    x=int(math.sqrt(y*y+m))
    if x+y>n:
        break
    if x*x-y*y!=m:
        continue
    if (n-x-y)%2:
        continue
    a=x+(n-x-y)//2
    b=(n-x-y)//2
    if a>n:
        continue
    tmp=fact[n]
    tmp*=fact_inv[a]
    tmp%=P
    tmp*=fact_inv[n-a]
    tmp%=P
    tmp*=fact[n]
    tmp%=P
    tmp*=fact_inv[b]
    tmp%=P
    tmp*=fact_inv[n-b]
    tmp%=P
    if x and y:
        ans+=4*tmp
        ans%=P
    elif x or y:
        ans+=2*tmp
        ans%=P
    else:
        ans+=tmp
        ans%=P
ans*=pow(4,n*(P-2),P)
ans%=P
print(ans)
0