Submission #1013753

#TimeUsernameProblemLanguageResultExecution timeMemory
1013753vjudge1 Martian DNA (BOI18_dna)C++17
0 / 100
21 ms4800 KiB
#include <bits/stdc++.h>
#define ll long long
#define pii pair<int, int>
using namespace std;

const int N = 2e5+1, INF = 1e9;

int n, k, rr;
int a[N];
int q[N];

int cur[N];

int main()
{
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin >> n >> k >> rr;
	for (int i = 1; i <= n; cin >> a[i++]);
	for (int i = 1, b; i <= rr; cin >> b >> q[b], i++);
	int sat = (q[a[1]] && ++cur[a[1]] == q[a[1]]);
	int l = 1, r = 1;
	int sol = INF;
	while (l <= r && r <= n) {
		//cerr << l << ' ' << r << endl;
		if ((sat == rr && l < r) || r == n) {
			if (sat == rr)
				sol = min(sol, r-l+1);
			cur[a[l]]--;
			if (q[a[l]] && cur[a[l]] == q[a[l]]-1) sat--;
			l++;
		} else {
			r++;
			cur[a[r]]++;
			if (q[a[r]] && cur[a[r]] == q[a[r]]) sat++;
		}
	}
	cout << (sol == INF ? "impossible" : to_string(sol));
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...