# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
852920 | 2023-09-23T07:33:36 Z | MuntherCarrot | Bubble Sort 2 (JOI18_bubblesort2) | C++17 | 0 ms | 0 KB |
// by me #include "bubblesort2.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define endl '\n' #define all(x) x.begin(), x.end() std::vector<int> countScans(std::vector<int> &A, std::vector<int> &X, std::vector<int> &V){ int Q = X.size(); int N = A.size(); vector<int> ans(Q, 0); vector<set<int>> f(101); for(int i = 0; i < N; i++){ f[A[i]].insert(i); } for(int i = 0; i < Q; i++){ f[A[X[i]]].erase(X[i]); A[X[i]] = V[i]; f[A[X[i]]].insert(X[i]); int x = 0; for(auto st : f){ if(st.empty()) continue; x += st.size(); int mx = *st.rbegin(); ans[i] = max(ans[i], mx - x + 1); } } return ans; } // /* int readInt(){ int i; if(scanf("%d",&i)!=1){ fprintf(stderr,"Error while reading input\n"); exit(1); } return i; } int main(){ int N,Q; N=readInt(); Q=readInt(); std::vector<int> A(N); for(int i=0;i<N;i++) A[i]=readInt(); std::vector<int> X(Q),V(Q); for(int j=0;j<Q;j++){ X[j]=readInt(); V[j]=readInt(); } std::vector<int> res=countScans(A,X,V); for(int j=0;j<int(res.size());j++) printf("%d\n",res[j]); } //*/ // by me