結果

問題 No.1578 A × B × C
ユーザー 👑 CleyL
提出日時 2022-08-18 16:00:00
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 458 bytes
コンパイル時間 848 ms
コンパイル使用メモリ 67,692 KB
最終ジャッジ日時 2025-01-30 23:51:25
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 22
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
using namespace std;
const long long MOD = 1000000007;

template <typename T>
T uPow(T z,T n, T mod){
  T ans = 1;
  while(n != 0){
    if(n%2){
      ans*=z;
      if(mod)ans%=mod;
    }
    n >>= 1;
    z*=z;
    if(mod)z%=mod;
  }
  return ans;
}

int main(){
    long long a,b,c,k;cin>>a>>b>>c>>k;
    long long x = ((a*b)%MOD*c)%MOD;
    long long z = uPow(2LL,k,MOD-1);
    long long ret = uPow(x,z,MOD);
    cout << ret << endl;
}
0