# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
462456 | _Avocado_ | Martian DNA (BOI18_dna) | C++14 | 111 ms | 13004 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define int int64_t
using namespace std;
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n, k, q; cin>>n>>k>>q;
vector<int>v(n);
for(auto&u: v) cin>>u;
vector<int>goal(k);
for(int i = 0; i<q; ++i){
int a, b; cin>>a>>b;
goal[a] = b;
}
//for(auto u: goal) cout<<u<<" ";
//cout<<endl;
int ans = 1e9;
int start = 0;
vector<int>cur(k);
map<int, int>full;
for(int i = 0; i<n; ++i){
++cur[v[i]];
while(cur[v[i]] > goal[v[i]] || !goal[v[start]]){
if(start == i) break;
if(cur[v[i]] > goal[v[i]] && v[start] == v[i]){
--cur[v[start]];
++start;
}
else if(!goal[v[start]]) ++start;
else break;
//cout<<start<<endl;
}
if(cur[v[i]] >= goal[v[i]] && goal[v[i]] != 0) full[v[i]] = 1;
if(full.size() == q) ans = min(ans, i-start+1);
//for(auto u: cur) cout<<u<<" ";
//cout<<endl;
//cout<<start<<" "<<full.size()<<endl;
}
if(ans == 1e9) cout<<"impossible";
else cout<<ans;
cout<<'\n';
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |