結果
| 問題 |
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;
}