Submission #462456

#TimeUsernameProblemLanguageResultExecution timeMemory
462456_Avocado_ Martian DNA (BOI18_dna)C++14
16 / 100
111 ms13004 KiB
#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)

dna.cpp: In function 'int main()':
dna.cpp:45:18: warning: comparison of integer expressions of different signedness: 'std::map<long int, long int>::size_type' {aka 'long unsigned int'} and 'int64_t' {aka 'long int'} [-Wsign-compare]
   45 |   if(full.size() == q) ans = min(ans, i-start+1);
      |      ~~~~~~~~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...