Submission #878173

#TimeUsernameProblemLanguageResultExecution timeMemory
878173vjudge1 Martian DNA (BOI18_dna)C++17
100 / 100
28 ms3920 KiB
#include <bits/stdc++.h> using namespace std; const int N = 2e5 + 10; int n, k, m; int a[N], b[N], cnt[N], cont, ans = N; int main() { ios:: sync_with_stdio(0), cin.tie(0); cin >> n >> k >> m; for (int i = 0; i < n; i++) cin >> a[i]; for (int i = 0; i < m; i++) { int x, y; cin >> x >> y; b[x] = y; } for (int i = 0; i < k; i++) if (!b[i]) cont++; for (int l = 0, r = 0; l < n; l++) { while (r < n && cont ^ k) { cnt[a[r++]]++; if (cnt[a[r - 1]] == b[a[r - 1]]) cont++; } if (cont == k) ans = min(ans, r - l); cnt[a[l]]--; if (cnt[a[l]] + 1 == b[a[l]]) cont--; } if (ans == N) cout << "impossible" << '\n'; else cout << ans << '\n'; 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...