結果

問題 No.8123 Calculated N !
ユーザー aa36
提出日時 2025-07-26 18:47:39
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 1,840 bytes
コンパイル時間 1,913 ms
コンパイル使用メモリ 197,692 KB
実行使用メモリ 7,720 KB
最終ジャッジ日時 2025-07-26 18:47:42
合計ジャッジ時間 3,174 ms
ジャッジサーバーID
(参考情報)
judge6 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4 WA * 2
other AC * 1 WA * 15
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<bits/stdc++.h>
using namespace std;
using ll = long long;//int型は使わない
using vecl = vector<ll>;
using graph = vector<vector<ll>>;
using pll = pair<ll , ll>;
const ll inf = (1LL<<61); //約2e18
const ll MOD = 998244353;
const vecl delx={1,0,-1,1,-1,1,0,-1};
const vecl dely={1,1,1,0,0,-1,-1,-1};
#define rep(i,a,b) for(ll i=(ll)a; i<(ll)b; i++)
#define rrep(i,a,b) for(ll i=(ll)b-1; i>=(ll)a; i--)
#define all(vec1) (vec1).begin(), (vec1).end()
#define yn(boolean) if(boolean){cout << "Yes" << endl;}else{cout << "No" << endl;}
#define debug(var) cerr << #var << " : " << var << endl;
template<typename... Args>
void eerr(Args&&... args){
    ((std::cerr << args << ' '), ...) << '\n';
}
//入力を取るやつ
template<typename T>
std::istream& operator>>(std::istream& is, std::vector<T>& v) {
    v.clear();
    std::string line;
    std::getline(is >> std::ws, line); // 1行丸ごと読み込み
    std::stringstream ss(line);
    T x;
    while (ss >> x) {
        v.push_back(x);
    }
    return is;
}
//fastio
struct FastIO {
    FastIO() {
        std::ios::sync_with_stdio(false);
        std::cin.tie(nullptr);
    }
} fastio;
//あまり(負の数対応)
template<typename T>
T ovr(T a,T b){
  T ret=a%b;
  if(ret<0)ret+=b;
  return ret;
}
const string MOD_bi = "111111111111111111111110110111";
//MOD下での逆元
ll minv(ll ina){
  ll a = ina % MOD;
  ll ret = 1;
  ll V = a;
  rep(i,0,MOD_bi.size()){
    if(MOD_bi[i]=='1')ret=(ret*V)%MOD;
    V=(V*V)%MOD;
  }
  return ret;
}

//指数をある値で割った余り
ll mpow(ll a , ll b , ll M){
    ll ret = 1;
    ll V = a;
    rep(i,0,64){
        if((b >> i) & 1)ret=(ret*V)%M;
        V=(V*V)%M;
    }
    return ret;
}

/////////main/////////

int main()
{
    ll n;
    cin >> n;
    cout << mpow(2 , n - 1 , 1000000007) << endl;
    return 0;
}
0