結果
問題 | No.25 有限小数 |
ユーザー |
|
提出日時 | 2023-02-20 10:42:14 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 907 bytes |
コンパイル時間 | 993 ms |
コンパイル使用メモリ | 84,912 KB |
最終ジャッジ日時 | 2025-02-10 19:13:23 |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 22 WA * 9 |
ソースコード
#include <iostream>#include <numeric>#include <unordered_map>long long solve(long long N, long long M) {long long g = std::gcd(M, N);N /= g;M /= g;while (N % 10 == 0) { N /= 10; }std::unordered_map<int, int> ct = {{2, 0},{5, 0}};for (const auto &x: {2, 5}) {while (M % x == 0) {ct.at(x)++;M /= x;}}if (M != 1) { return -1; }if (ct.at(2) <= ct.at(5)) {for (int i = 0; i < ct.at(5) - ct.at(2); i++) {N *= 2;if (N % 10 == 0) { N /= 10; }}} else {for (int i = 0; i < ct.at(2) - ct.at(5); i++) {N *= 5;if (N % 10 == 0) { N /= 10; }}}N %= 10;return N;}int main() {long long N, M;std::cin >> N;std::cin >> M;std::cout << solve(N, M) << std::endl;}