結果
問題 |
No.8123 Calculated N !
|
ユーザー |
|
提出日時 | 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 |
ソースコード
#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; }