結果

問題 No.800 四平方定理
ユーザー monnu
提出日時 2020-09-29 22:23:16
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 41 ms / 2,000 ms
コード長 514 bytes
コンパイル時間 1,528 ms
コンパイル使用メモリ 167,184 KB
実行使用メモリ 34,548 KB
最終ジャッジ日時 2024-07-04 14:37:05
合計ジャッジ時間 2,901 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
#define INF 1000000000000000000
#define MOD 1000000007
using ll=long long;
using Graph=vector<vector<int>>;

int main(){
  int N,D;
  cin>>N>>D;

  vector<int> cnt(8000001,0);
  for(int i=1;i<=N;i++){
    cnt[i*i*2]++;
    for(int j=i+1;j<=N;j++){
      cnt[i*i+j*j]+=2;
    }
  }

  int ans=0;
  for(int i=1;i<=N;i++){
    for(int j=1;j<=N;j++){
      int x=i*i-j*j+D;
      if(x>=0&&x<=8000000){
        ans+=cnt[i*i-j*j+D];
      }
    }
  }

  cout<<ans<<endl;

}
0