結果
| 問題 | No.1177 余りは? |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-01-22 03:34:37 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 1,000 ms |
| コード長 | 619 bytes |
| 記録 | |
| コンパイル時間 | 3,450 ms |
| コンパイル使用メモリ | 334,356 KB |
| 実行使用メモリ | 7,848 KB |
| 最終ジャッジ日時 | 2026-01-22 03:34:42 |
| 合計ジャッジ時間 | 5,093 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 32 |
ソースコード
#include <bits/stdc++.h>
#define rep(i, a, b) for(int i = (a); i <= (b); i ++)
using std::cin, std::cout, std::cerr;
using ll = long long;
const ll P = 1e9 + 7;
ll Pow(ll a, ll b, ll p) {
ll r = 1;
for(; b; b /= 2) {
if(b & 1)
r = r * a % p;
a = a * a % p;
}
return r;
}
ll Inv(ll x, ll p) { return Pow(x, p - 2, p); }
int main() {
std::ios::sync_with_stdio(false);
ll p, k; cin >> p >> k;
ll m = Pow(10, p - 1, p) - 1;
ll ans = (Pow(10, p - 1, P) - 1 - m) % P * Inv(p, P) % P;
if(k == 0) ans ++;
ans = (ans % P + P) % P;
cout << ans << '\n';
}