Submission #1093135

#TimeUsernameProblemLanguageResultExecution timeMemory
1093135juicy Martian DNA (BOI18_dna)C++17
100 / 100
149 ms143300 KiB
#include <bits/stdc++.h> using namespace std; #ifdef LOCAL #include "debug.h" #else #define debug(...) 42 #endif const int N = 2e5, inf = 1e9; int n, k, r; int a[N], l[N]; deque<int> dq[N]; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n >> k >> r; for (int i = 0; i < n; ++i) { cin >> a[i]; } for (int i = 0; i < r; ++i) { int b; cin >> b >> l[b]; } set<int> st; int res = inf; for (int i = 0; i < n; ++i) { if (l[a[i]]) { dq[a[i]].push_back(i); if (dq[a[i]].size() > l[a[i]]) { st.erase(dq[a[i]].front()); dq[a[i]].pop_front(); } if (dq[a[i]].size() == l[a[i]]) { st.insert(dq[a[i]].front()); } } if (st.size() == r) { res = min(res, i - *st.begin() + 1); } } if (res == inf) { cout << "impossible"; } else { cout << res; } return 0; }

Compilation message (stderr)

dna.cpp: In function 'int main()':
dna.cpp:32:27: warning: comparison of integer expressions of different signedness: 'std::deque<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   32 |       if (dq[a[i]].size() > l[a[i]]) {
      |           ~~~~~~~~~~~~~~~~^~~~~~~~~
dna.cpp:36:27: warning: comparison of integer expressions of different signedness: 'std::deque<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   36 |       if (dq[a[i]].size() == l[a[i]]) {
      |           ~~~~~~~~~~~~~~~~^~~~~~~~~~
dna.cpp:40:19: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   40 |     if (st.size() == r) {
      |         ~~~~~~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...