Submission #1041899

#TimeUsernameProblemLanguageResultExecution timeMemory
1041899vjudge1Nekameleoni (COCI15_nekameleoni)C++17
42 / 140
3064 ms20828 KiB
#include <bits/stdc++.h> using namespace std; int main() { int n,k,m; cin>>n>>k>>m; int pre[n+1][k]={},a[n+1]; for (int i=0;i<n;i++) { cin>>a[i+1]; a[i+1]--; for (int j=0;j<k;j++) pre[i+1][j]=pre[i][j]; pre[i+1][a[i+1]]++; } while (m--) { int t; cin>>t; if (t==1) { int p,x; cin>>p>>x; x--; for (int i=p;i<=n;i++) pre[i][a[p]]--,pre[i][x]++; a[p]=x; } else { int s=0,e=n+1; while (s+1<e) { int mid=(s+e)/2; bool b=0; for (int i=0;i+mid<=n && !b;i++) { int ct=0; for (int j=0;j<k;j++) ct+=(pre[i+mid][j]-pre[i][j]>0); if (ct==k) b=1; } if (b) e=mid; else s=mid; } if (e==n+1) e=-1; cout<<e<<endl; } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...