제출 #555582

#제출 시각아이디문제언어결과실행 시간메모리
555582fuad27Nekameleoni (COCI15_nekameleoni)C++17
42 / 140
3087 ms972 KiB
#include<bits/stdc++.h>
using namespace std;
#pragma GCC optimize("O3")
int k;
int main () {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	int n, m;
	cin >> n >> k >> m;
	int arr[n];
	for(int i = 0;i<n;i++){
		cin >> arr[i];
		arr[i]--;
	}
	while(m--) {
		int type;
		cin >> type;
		if(type == 1) {
			int p, v;
			cin >> p >> v;
			v--;p--;
			arr[p] = v;
		}
		else {
				vector<int> mp(51, 0);
	 			int p1 = 0, p2 = 0;
				int mx = 0;
				int ans = 1e9;
				set<int> s;
				mp[arr[0]]++;
				for(int i = 0;i<=50;i++)s.insert(i);
				s.erase(arr[0]);
    			while(p2 < n) {
					mx = *(s.begin());
    				if(mx >= k) {
    					ans = min(ans, (int)p2-p1+1);
						mp[arr[p1]]--;
						if(mp[arr[p1]] == 0)s.insert(arr[p1]);
    					p1++;
    				}
    				else {
						if(p2 < n-1){
							mp[arr[p2+1]]++;
							s.erase(arr[p2+1]);
						}
    					p2++;
    				}
    			}
    			if(ans == 1e9)ans = -1;
    			cout << ans << "\n";
		}
	}
}
#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...