Submission #1298571

#TimeUsernameProblemLanguageResultExecution timeMemory
1298571chikien2009 Martian DNA (BOI18_dna)C++20
100 / 100
108 ms136792 KiB
#include <bits/stdc++.h> using namespace std; int n, t, r, x, y; int a[200000], num[200000], valid; bool block[200000]; deque<int> dq[200000]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> t >> r; for (int i = 0; i < n; ++i) { cin >> a[i]; } for (int i = 0; i < r; ++i) { cin >> x >> y; num[x] = y; } x = 0; y = 2e9; for (int i = 0; i < n; ++i) { block[i] = true; dq[a[i]].push_back(i); valid += (dq[a[i]].size() == num[a[i]]); if (dq[a[i]].size() > num[a[i]]) { block[dq[a[i]].front()] = false; dq[a[i]].pop_front(); } while (x < i && !block[x]) { x++; } if (valid == r) { y = min(y, i - x + 1); } } if (y == 2e9) { cout << "impossible"; } else { cout << y; } 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...