結果
問題 |
No.800 四平方定理
|
ユーザー |
|
提出日時 | 2019-03-17 21:35:26 |
言語 | C++17(clang) (17.0.6 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,563 bytes |
コンパイル時間 | 1,412 ms |
コンパイル使用メモリ | 152,628 KB |
実行使用メモリ | 209,328 KB |
最終ジャッジ日時 | 2024-11-30 13:43:33 |
合計ジャッジ時間 | 44,887 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 22 TLE * 8 |
ソースコード
#include <algorithm> #include <bitset> #include <complex> #include <deque> #include <exception> #include <fstream> #include <functional> #include <iomanip> #include <ios> #include <iosfwd> #include <iostream> #include <istream> #include <iterator> #include <limits> #include <list> #include <locale> #include <map> #include <memory> #include <new> #include <numeric> #include <ostream> #include <queue> #include <set> #include <sstream> #include <stack> #include <stdexcept> #include <streambuf> #include <string> #include <typeinfo> #include <utility> #include <valarray> #include <vector> #pragma GCC diagnostic ignored "-Wsign-compare" #pragma GCC diagnostic ignored "-Wsign-conversion" using ld = long double; using ll = long long; //!============================================!// //! 8888ba.88ba oo !// //! 88 '8b '8b !// //! 88 88 88 .d8888b. dP 88d888b. !// //! 88 88 88 88' '88 88 88' '88 !// //! 88 88 88 88. .88 88 88 88 !// //! dP dP dP '88888P8 dP dP dP !// //!============================================!// int main() { int N, D; std::cin >> N >> D; std::unordered_map<int, int> wa, sa; for (int i = 1; i <= N; i++) { for (int j = 1; j <= N; j++) { wa[i * i + j * j]++, sa[i * i - j * j]++; } } ll ans = 0; for (const auto& p : sa) { const int W = D + p.first; if (wa.find(W) != wa.end()) { ans += p.second * wa[W]; } } std::cout << ans << std::endl; return 0; }