제출 #555504

#제출 시각아이디문제언어결과실행 시간메모리
555504snasibov05Nekameleoni (COCI15_nekameleoni)C++14
56 / 140
3086 ms1148 KiB
#include <bits/stdc++.h>

using namespace std;

int main() {

    int n, k, m; cin >> n >> k >> m;
    vector<int> a(n+1);
    for (int i = 1; i <= n; ++i) cin >> a[i];

    for (int i = 0; i < m; ++i){
        int t; cin >> t;
        if (t == 1) {
            int p, v; cin >> p >> v;
            a[p] = v;
        } else{
            int ans = n + 1;
            vector<int> ncnt(k+1);
            int cnt = 0;
            int r = 1;
            for (int l = 1; l <= n; ++l){
                while (cnt < k && r <= n) {
                    ncnt[a[r]]++;
                    if (ncnt[a[r]] == 1) cnt++;
                    r++;
                }
                if (cnt < k) break;
                ans = min(ans, r - l);
                ncnt[a[l]]--;
                if (ncnt[a[l]] == 0) cnt--;
            }
            if (ans == n+1) ans = -1;
            cout << ans << "\n";
        }
    }


    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...