結果

問題 No.1218 Something Like a Theorem
ユーザー monkukui2
提出日時 2020-09-04 21:27:16
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 4,741 bytes
コンパイル時間 1,204 ms
コンパイル使用メモリ 109,096 KB
実行使用メモリ 6,820 KB
最終ジャッジ日時 2024-11-26 11:50:39
合計ジャッジ時間 1,733 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 12 WA * 4
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <deque>
#include <list>
#include <queue>
#include <stack>
#include <vector>
#include <utility>
#include <algorithm>
#include <map>
#include <set>
#include <complex>
#include <cmath>
#include <limits>
#include <climits>
#include <ctime>
#include <cassert>
#include <numeric>
#include <functional>
#include <bitset>
using namespace std;
using lint = long long int;
long long int INF = 1001001001001001LL;
int inf = 1000000007;
long long int MOD = 1000000007LL;
double PI = 3.1415926535897932;
template<typename T1,typename T2>inline void chmin(T1 &a,const T2 &b){if(a>b) a=b;}
template<typename T1,typename T2>inline void chmax(T1 &a,const T2 &b){if(a<b) a=b;}
#define ALL(a) a.begin(),a.end()
#define RALL(a) a.rbegin(),a.rend()
/* do your best */
const long long MAXN = 1001024;
// a, b O( log max(a, b) )
long long gcd(long long a, long long b) {
if(b == 0) return a;
return gcd(b, a % b);
}
// ax + by = 1 (x, y) gcd(a, b) . gcd(a, b) = 1 .
long long extgcd(long long a, long long b, long long &x, long long &y){
long long d = a;
if(b != 0){
d = extgcd(b, a, y, x);
y -= (a / b) * x;
}else{
x = 1;
y = 0;
}
return d;
}
// [a, b)
long long prime[MAXN]; // [a,b) i
bool is_prime[MAXN]; // i
bool is_prime_ab[MAXN]; // i+a
long long sieve(long long n) {
long long res = 0; fill(is_prime, is_prime + MAXN, true);
is_prime[0] = is_prime[1] = false; // 0 1
for(long long i = 2; i <= n; ++i) {
if(!is_prime[i]) continue;
prime[res++] = i;
for(long long j = 2 * i; j <= n; j += i) is_prime[j] = false; // i (())
}
return res;
}
/*
long long segment_sieve(long long a, long long b){
fill(is_prime, is_prime + MAXN, true);
fill(is_prime_ab, is_prime_ab + MAXN, true);
for(long long i = 2; i * i <= b - 1; i++) {
if(!is_prime[i]) continue;
for(long long j = 2 * i; j * j <= b - 1; j += i) is_prime[j] = false; // i
for(long long j = a - a % i; j < b; j += i) {
if(j < a) continue;
if(is_prime_ab[j-a]) is_prime_ab[j-a] = false; // i
}
}
long long res = 0;
for(long long i = a; i < b; i++) if(is_prime_ab[i - a]) prime[res++] = i;
return res;
}
*/
//
vector<long long> divisors(long long n) {
vector<long long> res;
for(long long i = 1; i*i <= n; ++i) {
if(n % i != 0) continue;
res.push_back(i);
if(n/i == i) continue; //
res.push_back(n/i);
}
sort(res.begin(), res.end());
return res;
}
//
map<long long, long long> prime_factors(long long n) {
map<long long, long long> res;
if(n == 1) { // n=1 n^1
res[n] = 1;
return res;
}
for(long long i = 2, _n = n; i*i <= _n; ++i) {
while(n % i == 0) {
++res[i]; // i^{res[i]}
n /= i;
}
}
if(n != 1) res[n] = 1;
return res;
}
// 2
long long modpow(long long a, long long n) {
long long res = 1;
while (n > 0) {
if (n & 1) res = res * a % MOD;
a = a * a % MOD;
n >>= 1;
}
return res;
}
// . a m .
long long modinv(long long a, long long m) {
long long b = m, u = 1, v = 0;
while(b){
long long t = a / b;
a -= t * b; swap(a, b);
u -= t * v; swap(u, v);
}
u %= m;
if (u < 0) u += m;
return u;
}
long long fac[MAXN], finv[MAXN], inv[MAXN];
// O(n)
void math_init(){
fac[0] = fac[1] = 1;
finv[0] = finv[1] = 1;
inv[1] = 1;
for(long long i = 2; i < MAXN; i++){
fac[i] = fac[i - 1] * i % MOD;
inv[i] = MOD - inv[MOD%i] * (MOD / i) % MOD;
finv[i] = finv[i - 1] * inv[i] % MOD;
}
}
// O(1)
long long COM(long long n, long long k){
if (n < k) return 0;
if (n < 0 || k < 0) return 0;
return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD;
}
// before your coding, you have to write a line "math_init()"
int main() {
lint n, z; cin >> n >> z;
if (n >= 3) {
cout << "No" << endl;
return 0;
}
for (lint x = 1; x <= 100; x++) {
for (lint y = 1; y <= 100; y++) {
if ((lint)pow(x, n) + (lint)pow(y, n) == (lint)pow(z, n)) {
cout << "Yes" << endl;
return 0;
}
}
}
cout << "No" << endl;
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0