Submission #1314063

#TimeUsernameProblemLanguageResultExecution timeMemory
1314063mikolaj00 Martian DNA (BOI18_dna)C++20
100 / 100
23 ms2744 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n, k, R; cin >> n >> k >> R; vector<int> d(n+1); d[0] = k; for (int i = 1; i <= n; i++) cin >> d[i]; vector<int> req(k+1); for (int i = 0; i < R; i++) { int b, q; cin >> b >> q; req[b] = q; } vector<int> count(k+1); count[k]++; int good = k+1 - R; int l = 0, r = 0; while (r+1 <= n) { if (good == k+1) break; int val = d[r+1]; count[val]++; if (req[val] == count[val]) good++; r++; } if (good < k+1) { cout << "impossible"; return 0; } int ans = 1e9; while (l <= n && r <= n) { ans = min(ans, r-l+1); int val_l = d[l]; if (l == r || count[val_l]-1 < req[val_l]) { if (r == n) break; r++; int val_r = d[r]; count[val_r]++; } else { count[val_l]--; l++; } } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...