結果
問題 | No.800 四平方定理 |
ユーザー |
![]() |
提出日時 | 2019-03-17 21:30:18 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 753 ms / 2,000 ms |
コード長 | 1,528 bytes |
コンパイル時間 | 1,006 ms |
コンパイル使用メモリ | 116,296 KB |
実行使用メモリ | 85,700 KB |
最終ジャッジ日時 | 2024-07-07 20:44:07 |
合計ジャッジ時間 | 11,809 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 30 |
ソースコード
/* ---------- STL Libraries ---------- */// IO library#include <cstdio>#include <fstream>#include <iomanip>#include <ios>#include <iostream>// algorithm library#include <algorithm>#include <cmath>#include <numeric>#include <random>#include <cstring>// container library#include <array>#include <bitset>#include <deque>#include <map>#include <unordered_map>#include <queue>#include <set>#include <string>#include <tuple>#include <vector>#include <stack>/* ---------- Namespace ---------- */using namespace std;/* ---------- Type ---------- */using ll = long long;#define int ll#define P pair<ll, ll>/* ---------- Constants */const double PI = 3.141592653589793238462643383279;const ll MOD = 1e9 + 7;const int INF = 1LL << 55;/* v-v-v-v-v-v-v-v-v Main Part v-v-v-v-v-v-v-v-v */signed main() {int N, D;cin >> N >> D;vector<int> pool1;for (int i = 1; i <= N; i++) {for (int j = 1; j <= N; j++) {pool1.push_back(i * i + j * j);}}sort(pool1.begin(), pool1.end());vector<int> pool2;for (int i = 1; i <= N; i++) {for (int j = 1; j <= N; j++) {int val = i * i - j * j + D;if (val <= 0) continue;pool2.push_back(val);}}sort(pool2.begin(), pool2.end());int ret = 0;for (int val : pool1) {ret += upper_bound(pool2.begin(), pool2.end(), val) - lower_bound(pool2.begin(), pool2.end(), val);}cout << ret << endl;return 0;}