結果

問題 No.800 四平方定理
コンテスト
ユーザー horiesiniti
提出日時 2023-02-04 19:46:56
言語 Ruby
(4.0.2)
コンパイル:
ruby -w -c _filename_
実行:
ruby _filename_
結果
TLE  
実行時間 -
コード長 386 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 325 ms
コンパイル使用メモリ 9,216 KB
実行使用メモリ 155,244 KB
最終ジャッジ日時 2026-03-25 00:14:45
合計ジャッジ時間 38,350 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 22 TLE * 8
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #
raw source code

n,d=gets.split(" ").map{|e| e.to_i}
hs={}
hs2={}
1.upto(n){|x|
	x.upto(n){|y|
		t=x**2+y**2
		hs[t]=0 if hs.member?(t)==false
		hs[t]+=(x==y)?(1):(2)
		t2=d+(x+y)*(x-y)
		hs2[t2]=0 if hs2.member?(t2)==false
		hs2[t2]+=1
		next if x==y
		t2=d+(y-x)*(x+y)
		hs2[t2]=0 if hs2.member?(t2)==false
		hs2[t2]+=1
	}
}
ans=0
hs.each{|k,v|
	next if hs2.member?(k)==false
	ans+=v*hs2[k]
}
puts ans
0