結果
問題 | No.800 四平方定理 |
ユーザー |
![]() |
提出日時 | 2020-05-24 09:29:12 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,245 bytes |
コンパイル時間 | 1,152 ms |
コンパイル使用メモリ | 99,320 KB |
最終ジャッジ日時 | 2025-01-10 15:30:10 |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 22 TLE * 8 |
ソースコード
#include <iostream>#include <cstdio>#include <string>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <utility>#include <functional>#include <climits>#include <cstring>#include <unordered_map>using namespace std;//#define int long long#define rep(i, n) for (int i=0;i<(int)(n);++i)#define rep1(i, n) for (int i=1;i<=(int)(n);++i)#define range(i, l, r) for (int i=l;i<(int)(r);++i)#define rrange(i, l, r) for (int i=r-1;i>=(int)(l);--i)#define unless(a) if(!(a))#define all(a) begin(a),end(a)#define fst first#define scd second#define PB emplace_back#define PPB pop_backusing vi=vector<int>;using pii=pair<int, int>;using ll=long long;bool chmin(int&a,int b){return a>b?(a=b,true):false;}bool chmax(int&a,int b){return a<b?(a=b,true):false;}//int read(){int a;scanf("%lld",&a);return a;}const int inf = 1e9 + 10;const int mod = 1e9 + 7;int N, D;int xy[8000800];unordered_map<int, int> zw;signed main(){cin >> N >> D;range(z, 1, N + 1) {range(w, 1, N + 1) {zw[z * z - w * w]++;}}ll ans = 0;range(x, 1, N + 1) {range(y, 1, N + 1) {if (zw.count(D - (x * x + y * y))) ans += zw[D - (x * x + y * y)];}}printf("%lld\n", ans);}