Submission #382499

#TimeUsernameProblemLanguageResultExecution timeMemory
382499vishesh312 Martian DNA (BOI18_dna)C++17
100 / 100
45 ms3948 KiB
#include "bits/stdc++.h" using namespace std; /* #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; using ordered_set = tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update>; */ #define all(x) begin(x), end(x) #define sz(x) (int)x.size() using ll = long long; const int mod = 1e9+7; void solve(int tc) { int n, k, r; cin >> n >> k >> r; vector<int> v(n); for (auto &x : v) cin >> x; int nreq = n-r; vector<int> a(n); while (r--) { int b, q; cin >> b >> q; a[b] = q; } int ans = 1e9; int l = 0; r = 0; vector<int> used(n); while (r < n) { ++used[v[r]]; if (used[v[r]] == a[v[r]]) { ++nreq; } while (used[v[l]] > a[v[l]]) { used[v[l]]--; ++l; } if (nreq == n) ans = min(ans, r-l+1); ++r; } if (ans == 1e9) cout << "impossible\n"; else cout << ans << '\n'; } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int tc = 1; //cin >> tc; for (int i = 1; i <= tc; ++i) solve(i); 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...