結果
問題 | No.800 四平方定理 |
ユーザー |
![]() |
提出日時 | 2019-03-17 23:13:27 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 1,380 ms / 2,000 ms |
コード長 | 1,757 bytes |
コンパイル時間 | 1,165 ms |
コンパイル使用メモリ | 164,256 KB |
実行使用メモリ | 37,840 KB |
最終ジャッジ日時 | 2024-07-08 02:09:40 |
合計ジャッジ時間 | 19,986 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 30 |
ソースコード
////#define _GLIBCXX_DEBUG//#define NDEBUG#include <bits/stdc++.h>using namespace std;typedef long long ll;const ll linf = 1e18;const int inf = 1e9;#define vl vector<ll>#define pg priority_queue<ll, vector<ll>, greater<ll>>#define pq priority_queue<ll>#define rp(i, a, n) for (int i = a; i < n; i++)#define pr(i, a, n) for (int i = a; i >= n; i--)#define fm(i, mp) for (auto i = (mp).begin(); i != (mp).end(); ++i)#define al(v) (v).begin(), (v).end()#define mz(x) memset(x, 0, sizeof(x))#define mi(x) memset(x, 0x3F, sizeof(x))#define ce(x) cout << (x) << endl#define cs(x) cout << (x) << ' '#define co(x) cout << (x)#define cd(x, y) cout << setprecision(x) << (y) << endl#define ma make_pair#define pb push_back#define fs first#define sc second#define ceo cout << endl#define cso cout << ' 'clock_t startT, endT;int time(){endT = clock();cerr << (endT - startT) / 1000 << "ms" << endl;return (endT - startT) / 1000;}int main(){startT = clock();cin.tie(0);ios::sync_with_stdio(0);//----------------------------ll n, d;cin >> n >> d;vl wz;rp(i, 1, n + 1){rp(j, 1, n + 1){wz.pb((i + j) * (i - j));}}sort(al(wz));// rp(i, 0, wz.size()) cs(wz[i]);ll ans = 0;rp(i, 1, n + 1){rp(j, 1, n + 1){ll k = i * i + j * j - d;// cs(k);ll k2 = lower_bound(al(wz), k) - wz.begin();ll k3 = upper_bound(al(wz), k) - wz.begin();// cs(k2);// ce(k3);ans += k3 - k2;}}ce(ans);//----------------------------time();return 0;}//x^2+y^2=D+w^2-z^2=D+(w+z)(w-z)//1+1