結果
| 問題 | No.800 四平方定理 |
| コンテスト | |
| ユーザー |
vjudge1
|
| 提出日時 | 2026-03-10 18:37:31 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 2,540 bytes |
| 記録 | |
| コンパイル時間 | 2,380 ms |
| コンパイル使用メモリ | 342,696 KB |
| 実行使用メモリ | 193,536 KB |
| 最終ジャッジ日時 | 2026-03-10 18:39:23 |
| 合計ジャッジ時間 | 48,712 ms |
|
ジャッジサーバーID (参考情報) |
judge5_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 TLE * 1 |
| other | AC * 18 TLE * 12 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define FAST_IO \
ios::sync_with_stdio(false); \
cin.tie(nullptr);
#define ll long long
#define ull unsigned long long
#define ld long double
#define yes cout << "YES\n"
#define no cout << "NO\n"
#define endl '\n'
#define pb push_back
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define upb(v, x) ((upper_bound((v).begin(), (v).end(), (x))) - (v).begin())
#define upbit(v, x) (upper_bound((v).begin(), (v).end(), (x)))
#define lwb(v, x) ((lower_bound((v).begin(), (v).end(), (x))) - (v).begin())
#define lwbit(v, x) (lower_bound((v).begin(), (v).end(), (x)))
#define upbs(ms, x) ((ms).upper_bound(x))
#define lwbs(ms, x) ((ms).upper_bound(x))
#define scan(v, n) \
for (ll i = 0; i < (n); i++) \
cin >> (v)[i]
#define rep(i, n) for (ll i = 0; i < (n); i++)
#define rep1(i, n) for (ll i = 1; i <= (n); i++)
#define rrep(i, n) for (ll i = (n) - 1; i >= 0; i--)
#define repr(i, a, b) for (ll i = (a); i <= (b); i++)
#define rrepr(i, a, b) for (ll i = (a); i >= (b); i--)
#define printv(v) \
for (auto &x : (v)) \
cout << x << " "
#define printvp(v) \
for (auto &[a, b] : (v)) \
cout << a << " " << b << " "
#define printn(v) \
for (auto &x : (v)) \
cout << x << "\n"
#define printi(i, a, b) \
for (ll i = (a); i <= (b); i++) \
cout << i << " "
#define findIdx(v, x) ([](const auto &vv, const auto &xx) {auto it = find((vv).begin(), (vv).end(), (xx));return (it != (vv).end() ? (int)(it - (vv).begin()) : -1); }(v, x))
#define findIt(v, x) ([](auto &vv, const auto &xx) { return find((vv).begin(), (vv).end(), (xx)); }(v, x))
typedef vector<ll> vll;
typedef pair<ll, ll> pll;
typedef vector<pll> vpll;
typedef map<ll, ll> mll;
typedef map<char, ll> mcl;
typedef map<string, ll> msl;
typedef unordered_map<ll, ll> umll;
typedef unordered_map<ll, vll> umvll;
ll gcd(ll a, ll b) { return (b == 0) ? a : gcd(b, a % b); }
ll lcm(ll a, ll b) { return a / gcd(a, b) * b; }
ll MX = LLONG_MAX;
const ll INF = MX / 4;
void solve()
{
ll n, d;
cin >> n >> d;
ll mxVal = 2 * n * n;
map<ll, ll> freq;
rep1(x, n)
rep1(y, n)
freq[x * x + y * y]++;
ll cnt = 0;
rep1(z, n)
{
rep1(w, n)
{
ll val = w * w + d - z * z;
if (val >= 0 && val <= mxVal)
cnt += freq[val];
}
}
cout << cnt << endl;
}
int main()
{
FAST_IO;
solve();
return 0;
}
vjudge1