Submission #1013777

#TimeUsernameProblemLanguageResultExecution timeMemory
1013777vjudge1 Martian DNA (BOI18_dna)C++17
0 / 100
2063 ms8532 KiB
#include <bits/stdc++.h> #define ll long long #define pii pair<int, int> using namespace std; const int N = 2e5+5, INF = 1e9; int n, k, rr; int a[N]; int q[N]; int cur[N]; int main() { ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); cin >> n >> k >> rr; for (int i = 1; i <= n; cin >> a[i++]); for (int i = 1, b; i <= rr; cin >> b >> q[b], i++); int sat = (q[a[1]] && ++cur[a[1]] == q[a[1]]); int l = 1, r = 1; int sol = INF; while (r < n) { cerr << sat << ": " << l << ' ' << r << endl; if (sat == rr && l < r) { sol = min(sol, r-l+1); cur[a[l]]--; if (q[a[l]] && cur[a[l]] == q[a[l]]-1) sat--; l++; } else { r++; cur[a[r]]++; if (q[a[r]] && cur[a[r]] == q[a[r]]) sat++; } } while (l <= n && sat == rr) { sol = min(sol, r-l+1); cur[a[l]]--; if (q[a[l]] && cur[a[l]] == q[a[l]]-1) break; l++; } cout << (sol == INF ? "impossible" : to_string(sol)); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...