Submission #1298580

#TimeUsernameProblemLanguageResultExecution timeMemory
1298580tuongll Martian DNA (BOI18_dna)C++20
100 / 100
22 ms2620 KiB
#include <bits/stdc++.h> using namespace std; const int N = 2e5 + 3; int n, k, a[N], req[N], cnt[N], oliu = 0; void add(int x){ if (cnt[x] == req[x] - 1) ++oliu; ++cnt[x]; } void rem(int x){ if (cnt[x] == req[x]) --oliu; --cnt[x]; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int m; cin >> n >> k >> m; for (int i = 1; i <= n; ++i) cin >> a[i]; for (int i = 1, b; i <= m; ++i) cin >> b >> req[b]; oliu = k - m; int res = n + 67; for (int i = 1, j = 1; i <= n; ++i){ add(a[i]); if (oliu == k){ while(j <= i && oliu == k) rem(a[j++]); --j, add(a[j]); res = min(res, i - j + 1); } } if (res == n + 67) cout << "impossible"; else cout << res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...