Submission #927102

#TimeUsernameProblemLanguageResultExecution timeMemory
927102vjudge1 Martian DNA (BOI18_dna)C++17
68 / 100
24 ms3056 KiB
#include<bits/stdc++.h>

using namespace std;

const int N = (int)2e5+3;
const int MOD = (int)1e6+3;

int n, k, r, a[N], c[N], cnt[N];
int b[11];

int main() {
    ios_base::sync_with_stdio(NULL);
    cin.tie(0);
	cin >> n >> k >> r;
	for(int i = 1; i <= n; ++i) {
		cin >> a[i];
	} 
	for(int i = 1; i <= r; ++i) {
		int x, y;
		cin >> x >> y;
		c[x]=y;
		b[i]=x;
	}
	int j = 1;
	int ans = n+1, kol = 0;
	for(int i = 1; i <= n; ++i) {
		cnt[a[i]]++;
	    if(cnt[a[i]] == c[a[i]] && c[a[i]] != 0) {
	    	kol++;
	    }
		while(j<=i && cnt[a[j]]-1>=c[a[j]]) {
			cnt[a[j]]--;
			j++;
		}	
		if(kol == r) {
			ans = min(ans, i-j+1);
		}
	}
	if(ans == n+1) {
		cout << "impossible";
		return 0;
	}
	cout << ans;
    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...