結果
問題 |
No.1578 A × B × C
|
ユーザー |
|
提出日時 | 2021-07-03 20:28:20 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 762 bytes |
コンパイル時間 | 2,211 ms |
コンパイル使用メモリ | 194,404 KB |
最終ジャッジ日時 | 2025-01-22 17:19:22 |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 22 |
ソースコード
#include<bits/stdc++.h> using namespace std; using ll = long long int; using ld = long double; #define pow(n,m) powl(n,m) #define sqrt(n) sqrtl(n) const ll MAX = 5000000000000000000; const ld PI = 3.14159265358979; const ll MOD = 1000000007; random_device rd; mt19937 mt(rd()); ld dotorad(ld K){return PI * K / 180.0;} ld radtodo(ld K){return K * 180.0 / PI;} ll modpow(ll A,ll B,ll M){ ll r = 1,p = A; while(B > 0){ if(B % 2 == 1) r = (r * p) % M; p = (p * p) % M; B /= 2; } return r; } int main(){ ll A,B,C,K; cin >> A >> B >> C >> K; ll p = modpow(2,K,MOD - 1); ll ans = modpow(A,p,MOD); ans *= modpow(B,p,MOD); ans %= MOD; ans *= modpow(C,p,MOD); ans %= MOD; cout << ans << endl; }