結果

問題 No.3075 Mex Recurrence Formula
ユーザー ゼリトキ
提出日時 2025-03-28 22:11:41
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 804 bytes
コンパイル時間 3,665 ms
コンパイル使用メモリ 287,344 KB
実行使用メモリ 41,088 KB
最終ジャッジ日時 2025-03-28 22:12:19
合計ジャッジ時間 17,831 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 41 WA * 5
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define ll long long
#define mod 998244353
int main(){
    cin.tie(0)->sync_with_stdio(0);
    cout.tie(0);
    ll N,X;
    cin>>N>>X;
    ll A[400009];
    for(int i=1;i<=N;i++) cin>>A[i];
    set<ll>S;
    map<ll,ll>M;
    for(int i=0;i<=N;i++){
        S.insert(i);
        M[i]=0;
    }
    for(int i=1;i<=N;i++){
        if(A[i]<=N){
            S.erase(A[i]);
            M[A[i]]++;
        }
    } 
    for(int i=N+1;i<=N*2+1;i++){
        A[i]=*S.begin();
        S.erase(A[i]);
        M[A[i]]++;
        M[A[i-N]]--;
        if(M[A[i-N]]==0 && A[i-N]<=N) S.insert(A[i-N]);
    }
    if(X<=N*2){
        cout<<A[X]<<endl;
        return 0;
    }
    X-=N;
    X%=(N+1);
    cout<<A[N+X]<<endl;
}
0