結果
問題 |
No.1218 Something Like a Theorem
|
ユーザー |
|
提出日時 | 2021-01-22 16:38:58 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 36 ms / 2,000 ms |
コード長 | 777 bytes |
コンパイル時間 | 922 ms |
コンパイル使用メモリ | 67,968 KB |
実行使用メモリ | 11,392 KB |
最終ジャッジ日時 | 2024-12-26 19:05:21 |
合計ジャッジ時間 | 1,365 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 16 |
ソースコード
#include <iostream> #include <string> #include <math.h> using namespace std; using INT = unsigned long long; static INT _cash[1000000]; INT _pow(INT a, INT b) { if (_cash[a] == 0) { _cash[a] = pow(a, b); } return _cash[a]; } const char *solve(INT n, INT z) { const INT A = pow(z, n); INT x, y; x = 1; while (1) { y = 1; while (1) { INT a = _pow(x, n) + _pow(y, n); if (a == A) { return "Yes"; } if (a > A) { if (y == 1) { return "No"; } break; } y++; } x++; } } int main() { INT n, z; cin >> n >> z; cout << solve(n, z) << endl; }