結果
問題 |
No.2537 多重含意
|
ユーザー |
|
提出日時 | 2023-11-10 22:24:02 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 568 bytes |
コンパイル時間 | 3,840 ms |
コンパイル使用メモリ | 257,904 KB |
最終ジャッジ日時 | 2025-02-17 21:01:32 |
ジャッジサーバーID (参考情報) |
judge5 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 10 WA * 14 |
ソースコード
#include <bits/stdc++.h> #include <atcoder/all> using namespace std; using ll = long long; #define rep(i,n) for(int i=0;i<(int)(n);i++) using mint = atcoder::modint; int main(){ int n,b; cin>>n>>b; vector<int> a(n); rep(i,n) cin>>a.at(i); mint::set_mod(b); mint ans=0; map<int,int> mp; vector<int> v(n+1,-1); rep(i,n){ if(mp.count(a.at(i))){ if(mp.at(a.at(i))==1){ ans+=mint(2).pow(v.at(a.at(i))); } mp.at(a.at(i))++; }else{ mp[a.at(i)]++; ans+=mint(2).pow(n-mp.size()); v.at(a.at(i))=n-mp.size(); } cout<<ans.val()<<"\n"; } }