結果
問題 | No.1842 Decimal Point |
ユーザー |
👑 |
提出日時 | 2022-02-19 20:43:49 |
言語 | C (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 767 bytes |
コンパイル時間 | 663 ms |
コンパイル使用メモリ | 30,336 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-29 10:39:45 |
合計ジャッジ時間 | 1,078 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 3 WA * 2 |
ソースコード
#include <stdio.h>int Mod;long long pow_mod(int n, long long k){long long N, ans = 1;for (N = n; k > 0; k >>= 1, N = N * N % Mod) if (k & 1) ans = ans * N % Mod;return ans;}int solve(long long A, int B, int C){if (C == 0) return A / B % 10;else if (B % 10 == 0) return solve(A, B / 10, C - 1);else if (B % 5 == 0) return solve(A * 2, B / 5, C - 1);else if (B % 2 == 0) return solve(A * 5, B / 2, C - 1);Mod = B;A %= Mod;if (C >= 10) {A = A * pow_mod(10, C - 9) % Mod;C = 9;}while (C > 1) {A = A * 10 % Mod;C--;}return A * 10 / B % 10;}int main(){int t, T, A, B, C;scanf("%d", &T);for (t = 1; t <= T; t++) {scanf("%d %d %d", &A, &B, &C);printf("%d\n", solve(A, B, C));}fflush(stdout);return 0;}