Submission #476410

#TimeUsernameProblemLanguageResultExecution timeMemory
476410AdamGS Martian DNA (BOI18_dna)C++14
100 / 100
38 ms6736 KiB
#include<bits/stdc++.h> using namespace std; typedef long double ld; #define int long long #define rep(a, b) for(int a = 0; a < (b); ++a) #define st first #define nd second #define pb push_back #define all(a) a.begin(), a.end() const int LIM=2e5+7; int T[LIM], ile[LIM], R[LIM]; int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); int n, k, r; cin >> n >> k >> r; rep(i, n) cin >> T[i]; int zle=0; rep(i, r) { int b, q; cin >> b >> q; R[b]=q; if(q) ++zle; } int l=0, ans=LIM; rep(i, n) { while(l<n && zle) { ++ile[T[l]]; if(ile[T[l]]==R[T[l]]) --zle; ++l; } if(!zle) ans=min(ans, l-i); if(ile[T[i]]==R[T[i]]) ++zle; --ile[T[i]]; } if(ans==LIM) cout << "impossible\n"; else cout << ans << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...