Submission #1290937

#TimeUsernameProblemLanguageResultExecution timeMemory
1290937a__turki Martian DNA (BOI18_dna)C++20
100 / 100
360 ms16268 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #define ll long long #define int long long #define mod 1000000007 #define ld long double #define all(x) (x).begin() , (x).end() #define pb push_back using namespace __gnu_pbds; using namespace std; template <typename T> using ordered_set = tree<T, null_type, less_equal<T>, rb_tree_tag, tree_order_statistics_node_update>; signed main(){ cin.tie(0)->sync_with_stdio(0); ll tt=1; // cin >> tt; while(tt--){ ll n,k,r,en=0; cin >> n >> k >> r; vector<ll> a(n),f(k,0); vector<array<ll,2>> b(r); map<ll,ll> m; for(int i=0; i<n; i++) cin >> a[i],f[a[i]]++; for(int i=0; i<r; i++) cin >> b[i][0] >> b[i][1],m[b[i][0]]=b[i][1]; ll h=r,ans=n+1; for(int st=0; st<n; st++){ while(h>0 && en<n){ m[a[en]]--; if(m[a[en]]==0) h--; en++; } if(h==0) ans=min(ans,en-st); m[a[st]]++; if(m[a[st]]==1) h++; } if(ans==n+1) cout << "impossible"; else cout << ans; } 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...