제출 #941129

#제출 시각아이디문제언어결과실행 시간메모리
941129FKS Martian DNA (BOI18_dna)C++14
0 / 100
2032 ms7532 KiB
#include <bits/stdc++.h> using namespace std; #define max(a, b) (a > b ? a : b) int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, k, r;cin>>n>>k>>r; int* dna = new int[n]; for (int i = 0;i < n;i++) cin >> dna[i]; unordered_set<int> hset; unordered_map<int, int> req; for (int i = 0;i < r;i++) { int x, y; cin >> x >> y; hset.emplace(x); req[x] = y; } int min_len = 1e9; int j = -1; for (int i = 0;i < n;i++) { if (i && hset.count(dna[i-1])) req[dna[i-1]]++; bool ok = false; for (auto& i : req) if (i.second > 0) { ok = true; break; } if (ok) for (j=j+1;j < n;j++) { if (hset.count(dna[j])) { req[dna[j]]--; } ok = true; for (auto& i : req) if (i.second > 0) { ok = false; break; } if (ok) { min_len = min(min_len, j - i + 1); break; } } } if (min_len == 1e9) cout << "impossible"; else if (min_len) cout << min_len; else if (min_len == 0) cout << "impossible"; 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...