結果
問題 |
No.251 大きな桁の復習問題(1)
|
ユーザー |
|
提出日時 | 2021-05-03 02:17:05 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 52 ms / 5,000 ms |
コード長 | 676 bytes |
コンパイル時間 | 1,750 ms |
コンパイル使用メモリ | 194,088 KB |
最終ジャッジ日時 | 2025-01-21 06:09:14 |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 |
ソースコード
#include <bits/stdc++.h> using namespace std; const long long MOD = 129402307; long long modpow(long long x, long long p, long long mod) { long long ret = 1; while (p) { if (p & 1) ret = ret * x % mod; x = x * x % mod; p >>= 1; } return ret; } long long convert(const string &s, long long mod) { long long x = 0; for (char c: s) { x = 10 * x + (c - '0'); x %= mod; } return x; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); string n, m; cin >> n >> m; long long x = convert(n, MOD); long long y = convert(m, MOD-1); if (m != "0") y += MOD - 1; cout << modpow(x, y, MOD) << endl; return 0; }