結果
問題 |
No.1723 [Cherry 3rd Tune *] Dead on
|
ユーザー |
👑 ![]() |
提出日時 | 2021-09-27 20:34:44 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 9 ms / 2,000 ms |
コード長 | 1,098 bytes |
コンパイル時間 | 1,013 ms |
コンパイル使用メモリ | 83,376 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-10-07 09:09:44 |
合計ジャッジ時間 | 2,188 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 50 |
ソースコード
#include <iostream> #include <vector> #include <map> using namespace std; using ll=long long; vector<pair<ll,ll>> Prime_Factorization(ll N) { vector<pair<ll,ll>> R; ll e=0; while (N%2==0){ e++; N/=2; } R.push_back({2,e}); e=0; while (N%3==0){ e++; N/=3; } R.push_back({3,e}); ll p=5,f=0; while (p*p<=N) { if (N % p==0){ ll e=0; while (N % p == 0){ e++; N/=p; } R.push_back({p,e}); } p+=2+2*f; f^=1; } if (N != 1) R.push_back({N, 1}); return R; } int main(){ ll A,B,X,Y; cin >> X >> A >> Y >> B; vector<pair<ll,ll>> P=Prime_Factorization(X); vector<pair<ll,ll>> Q=Prime_Factorization(Y); map<ll,ll> D,E; for (auto p: P){D[p.first]=A*p.second;} for (auto q: Q){E[q.first]=B*q.second;} for (auto q: E){ if (D[q.first]<E[q.first]){ cout << "No" << endl; return 0; } } cout << "Yes" << endl; return 0; }