結果
問題 | No.1250 汝は倍数なりや? |
ユーザー |
![]() |
提出日時 | 2020-10-09 22:15:36 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,433 bytes |
コンパイル時間 | 1,492 ms |
コンパイル使用メモリ | 175,132 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-20 12:10:56 |
合計ジャッジ時間 | 3,891 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 36 WA * 13 |
ソースコード
#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 != 0) hg[H]++; // for (auto x : hg) { cout << x.first << "^" << x.second << endl; } vector<int> A(N); rep(i, N) { cin >> A[i]; if (A[i] == 1) continue; for (auto x : hg) { if (x.second < 1) continue; if (A[i] % x.first != 0) continue; int cnt = A[i] / x.first; A[i] = A[i] % x.first; hg[x.first] -= cnt; } } 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; } }