結果
問題 | No.1218 Something Like a Theorem |
ユーザー |
|
提出日時 | 2020-09-04 21:54:21 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 18 ms / 2,000 ms |
コード長 | 2,387 bytes |
コンパイル時間 | 2,060 ms |
コンパイル使用メモリ | 194,248 KB |
最終ジャッジ日時 | 2025-01-14 05:37:07 |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 16 |
ソースコード
#include <bits/stdc++.h>using namespace std;using ll = long long;using ld = long double;using P = pair<ll, ll>;using Pld = pair<ld, ld>;using Vec = vector<ll>;using VecP = vector<P>;using VecB = vector<bool>;using VecC = vector<char>;using VecD = vector<ld>;using VecS = vector<string>;template <class T>using Vec2 = vector<vector<T>>;#define REP(i, m, n) for(ll i = (m); i < (n); ++i)#define REPN(i, m, n) for(ll i = (m); i <= (n); ++i)#define REPR(i, m, n) for(ll i = (m)-1; i >= (n); --i)#define REPNR(i, m, n) for(ll i = (m); i >= (n); --i)#define rep(i, n) REP(i, 0, n)#define repn(i, n) REPN(i, 1, n)#define repr(i, n) REPR(i, n, 0)#define repnr(i, n) REPNR(i, n, 1)#define all(s) (s).begin(), (s).end()#define pb push_back#define fs first#define sc secondtemplate <class T1, class T2>bool chmax(T1 &a, const T2 b){if(a < b){a = b; return true;} return false;}template <class T1, class T2>bool chmin(T1 &a, const T2 b){if(a > b){a = b; return true;} return false;}ll pow2(const int n){return (1LL << n);}void co() { cout << endl; }template <class Head, class... Tail>void co(Head&& head, Tail&&... tail) {cout << head << ' ';co(forward<Tail>(tail)...);}void ce() { cerr << endl; }template <class Head, class... Tail>void ce(Head&& head, Tail&&... tail) {cerr << head << ' ';ce(forward<Tail>(tail)...);}void sonic(){ios::sync_with_stdio(false); cin.tie(0);}void setp(const int n){cout << fixed << setprecision(n);}constexpr int INF = 1e9+1;constexpr ll LINF = 1e18L+1;constexpr ll MOD = 1e9L+7;constexpr ll MOD_N = 998244353;constexpr ld EPS = 1e-11;const double PI = acos(-1);ll pow_mod(ll a, ll n){if(n < 0) return pow_mod(pow_mod(a, -n), MOD-2);if(n == 0) return 1;if(n == 1) return a;if (n % 2 == 0) return pow_mod(a * a % MOD, n / 2);return a * pow_mod(a * a % MOD, n / 2) % MOD;}int main(void){ll n, z;cin >> n >> z;ld m = 1.0L / n;repn(i, z - 1){ll p = pow(pow((ld)z, n) - pow((ld)i, n), m);if(pow_mod(i, n) + pow_mod(p, n) == pow_mod(z, n)){puts("Yes");return 0;}if(pow_mod(i, n) + pow_mod(p + 1, n) == pow_mod(z, n)){puts("Yes");return 0;}}puts("No");return 0;}