結果

問題 No.800 四平方定理
コンテスト
ユーザー vjudge1
提出日時 2026-02-06 19:31:33
言語 C++14
(gcc 15.2.0 + boost 1.89.0)
結果
AC  
実行時間 44 ms / 2,000 ms
コード長 486 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 5,816 ms
コンパイル使用メモリ 181,024 KB
実行使用メモリ 19,316 KB
最終ジャッジ日時 2026-02-06 19:31:44
合計ジャッジ時間 10,209 ms
ジャッジサーバーID
(参考情報)
judge3 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include<bits/stdc++.h>
using namespace std;
int n,k,f[4000005],x;
long long ans;
template<typename T> inline void read(T& x){
	x=0;char c=getchar();
	while(!isdigit(c))c=getchar();
	while(isdigit(c)){
		x=(x<<1)+(x<<3)+(c^48);
		c=getchar();
	}
}
int main(){
	read(n),read(k);
	for(int i=n;i>0;i--){
		for(int j=i;j>0;j--){
			f[i*i-j*j]++;
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			x=abs(i*i+j*j-k);
			if(x<4000000)ans+=f[x];
		}
	}
	printf("%lld",ans);
	return 0;
}
0