結果
問題 | No.2394 部分和乗総和 |
ユーザー |
![]() |
提出日時 | 2023-07-29 08:06:28 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 176 ms / 2,000 ms |
コード長 | 1,515 bytes |
コンパイル時間 | 1,591 ms |
コンパイル使用メモリ | 193,728 KB |
最終ジャッジ日時 | 2025-02-15 20:54:41 |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 21 |
ソースコード
#include <bits/stdc++.h>using namespace std;using ll = long long;using pl = pair<ll,ll>;using vl = vector<ll>;#define rep(i,n) for(ll i=0;i<(ll)(n);++i)#define reps(i,s,n) for(ll i=(s);i<(ll)(n);++i)#define rep1(i,n) for(ll i=1;i<=(ll)(n);++i)#define fi first#define se second#define pb push_back#define eb emplace_back#define be(v) (v).begin(),(v).end()const long long INF = 1e18;#ifdef DEBUG#include <debug.hpp>#endif// start ipow : integer power/**inline ll ipow(ll x,ll p){ll ret=x; rep1(i,p-1) ret*=x; return ret;}**/ll N,M,MOD;// mpow : mod power//const int MOD = 1000000007;ll mpow(ll x, ll n) {ll ret = 1;while (n > 0) {if (n & 1LL) ret = ret * x % MOD;x = x * x % MOD;n >>= 1;}return ret;}// mpow : mod powervoid input(){cin>>N>>M>>MOD;}#ifdef DEBUGvoid showall(){show(N,M,MOD);}#endifll logic(){M %= MOD;ll ans = 1;rep(n,N){ll a;cin>>a;ans = (ans * (1LL + mpow(M,a))) % MOD;#ifdef DEBUGshow("n ans M a mpow",n,ans,M,a,mpow(M,a));#endif}return ans;}int main(){#ifdef DEBUGll x= 91510263775;ll y= 86467186908397382;MOD = 118411323;show("mpowbig",mpow(x,y));#endifinput();#ifdef DEBUG//n ans M a mpow 0 -57613481 91510263775 86467186908397382 -57613482showall();cout << "--- Logic ---" << endl;#endifll ans=logic();cout<<ans<<endl;//if(logic())cout<<"Yes"<<endl;//else cout<<"No"<<endl;//while(input())logic();return 0;}//cout << fixed << setprecision(9);