結果
問題 | No.2394 部分和乗総和 |
ユーザー |
|
提出日時 | 2023-07-28 21:32:11 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 116 ms / 2,000 ms |
コード長 | 3,087 bytes |
コンパイル時間 | 1,679 ms |
コンパイル使用メモリ | 194,952 KB |
最終ジャッジ日時 | 2025-02-15 20:03:55 |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 21 |
ソースコード
#include <bits/stdc++.h>using namespace std;char nl = '\n';char sp = ' ';using ll = long long;using vb = vector<bool>;using vi = vector<int>;using vl = vector<ll>;using vvb = vector<vb>;using vvi = vector<vi>;using vvl = vector<vl>;using si = unordered_set<int>;using sl = unordered_set<ll>;using tsi = set<int>;using tsl = set<ll>;using pii = pair<int, int>;using pll = pair<ll, ll>;using vpii = vector<pii>;using vpll = vector<pll>;using tmii = map<int, int>;using tmll = map<ll, ll>;using mii = unordered_map<int, int>;using mll = unordered_map<ll, ll>;using pqi = priority_queue<int>;using pqig = priority_queue<int, vi, greater<int>>;using pql = priority_queue<ll>;using pqlg = priority_queue<ll, vl, greater<ll>>;using pqpii = priority_queue<pii>;using pqpll = priority_queue<pll>;#define tp3(T) tuple<T,T,T>#define tp4(T) tuple<T,T,T,T>#define all(a) (a).begin(),(a).end()#define rall(a) (a).rbegin(),(a).rend()#define sort_and_unique(a) sort(all(a));(a).resize(unique(all(a))-(a).begin())#define outrange(x,min,max) ((x)<(min) || (x)>(max))ll _start_time;#define nano (chrono::system_clock::now().time_since_epoch().count())#define reset_timer _start_time=nano#define chime cout<<((nano-_start_time)/1e9)<<endl#define init_rng mt19937 rng(nano)#define randint(a,b) ((a)+rng()%((b)-(a)+1))#ifndef ONLINE_JUDGE#define debug(x) (cout<<(#x)<<':'<<(x)<<'\n')#else#define debug(x)#endifvoid yesno(bool a) {cout << (a ? "Yes\n" : "No\n");}template<typename L, typename R>ostream& operator<<(ostream& out, const pair<L, R>& p) {out << '(' << p.first << ',' << p.second << ')';return out;}template<typename T1, typename T2, typename T3>ostream& operator<<(ostream& out, const tuple<T1, T2, T3>& tp) {auto &[t1, t2, t3] = tp;out << '(' << t1 << ',' << t2 << ',' << t3 << ')';return out;}template<typename T>ostream& operator<<(ostream& out, const vector<T>& v) {for (auto &i : v) out << i << ' ';out << nl;return out;}template<typename T>ostream& operator<<(ostream& out, const set<T>& v) {for (auto &i : v) out << i << ' ';out << nl;return out;}template<typename T>ostream& operator<<(ostream& out, const unordered_set<T>& v) {for (auto &i : v) out << i << ' ';out << nl;return out;}template<typename K, typename V>ostream& operator<<(ostream& out, const map<K, V>& m) {out << '[';for (auto &[k, v] : m) {out << k << ':' << v << sp;}out << "]\n";return out;}template<typename K, typename V>ostream& operator<<(ostream& out, const unordered_map<K, V>& m) {out << '[';for (auto &[k, v] : m) {out << k << ':' << v << sp;}out << "]\n";return out;}ll mod;ll modPow(ll n,ll pow) {if(pow==1) return n;ll result=1;while(pow>0) {if((pow&1)==1) result=(result*n)%mod;pow>>=1;if(pow==0) break;n=(n*n)%mod;}return result;}int main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);ll n,m;cin>>n>>m>>mod;m%=mod;ll ans=1%mod;for(int i=0;i<n;i++){ll a;cin>>a;ans=ans*(1+modPow(m,a))%mod;}cout<<ans<<nl;}