Submission #1165807

#TimeUsernameProblemLanguageResultExecution timeMemory
1165807fryingduc Martian DNA (BOI18_dna)C++20
100 / 100
99 ms17068 KiB
#include "bits/stdc++.h" using namespace std; #ifdef duc_debug #include "bits/debug.h" #else #define debug(...) #endif const int maxn = 2e5 + 5; int n, a[maxn], k, q; vector<int> vec[maxn]; int freq[maxn]; void solve() { cin >> n >> k >> q; for (int i = 1; i <= n; ++i) { cin >> a[i]; vec[a[i]].push_back(i); } set<int> s; for (int i = 1; i <= q; ++i) { int x; cin >> x; cin >> freq[x]; if ((int)vec[x].size() < freq[x]) { cout << "impossible\n"; return; } s.insert(vec[x][freq[x] - 1]); } int res = *s.rbegin(); for (int i = 1; i <= n; ++i) { res = min(res, *s.rbegin() - i + 1); if (freq[a[i]]) { s.erase(vec[a[i]][freq[a[i]] - 1]); if (freq[a[i]] == (int)vec[a[i]].size()) break; s.insert(vec[a[i]][freq[a[i]]++]); } } cout << res; } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); solve(); 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...