結果
問題 | No.1250 汝は倍数なりや? |
ユーザー |
![]() |
提出日時 | 2020-10-09 22:33:00 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 77 ms / 1,000 ms |
コード長 | 1,515 bytes |
コンパイル時間 | 1,768 ms |
コンパイル使用メモリ | 175,248 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-20 12:55:22 |
合計ジャッジ時間 | 3,531 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 49 |
ソースコード
#include <bits/stdc++.h>// #include <atcoder/all> // NOTE: AtCoderライブラリ#define rep(i, n) for (int i = 0; i < (int)(n); i++)using namespace std;// using namespace atcoder; // NOTE: AtCoderライブラリtypedef long long ll;typedef long double ld;typedef vector<int> vi;typedef vector<long long> vl;typedef vector<bool> vb;typedef vector<char> vc;typedef pair<int, int> pii;// #define INF __INT32_MAX__// #define INF 1e9// #define LINF __LONG_LONG_MAX__int main() {int N, H; cin >> N >> H;map<int, int> hg;for (int i = 2; i <= sqrt(H); i++) {if (H % i != 0) continue;int ext = 0;while (H % i == 0) {ext++;H /= i;}hg[i] += ext;}if (H != 1) hg[H]++;// for (auto x : hg) { cout << x.first << "^" << x.second << endl; }vector<int> A(N);rep(i, N) {cin >> A[i];}rep(i, N) {if (A[i] == 1) continue;for (auto x : hg) {if (x.second < 1) continue;if (A[i] % x.first != 0) continue;while (A[i] % x.first == 0) {if (hg[x.first] < 1) break;A[i] /= x.first;hg[x.first]--;}}}bool ok = true;for (auto x : hg) {if (x.second > 0) ok = false;}// for (auto x : hg) { cout << x.first << "^" << x.second << endl; }if (ok) {cout << "YES" << endl;} else {cout << "NO" << endl;}}