제출 #1314070

#제출 시각아이디문제언어결과실행 시간메모리
1314070amloxg Martian DNA (BOI18_dna)C++20
100 / 100
22 ms2744 KiB
#include <iostream> #include <vector> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int dna_length, alphabet_size, reqs_num; cin >> dna_length >> alphabet_size >> reqs_num; vector<int> dna(dna_length); for (auto &nucleobase : dna) cin >> nucleobase; vector<int> reqs(alphabet_size, 0); for (int req = 0; req < reqs_num; ++req){ int nucleobase, quantity; cin >> nucleobase >> quantity; reqs[nucleobase] = quantity; } int C = reqs_num; int res = 1e9; vector<int> cnt(alphabet_size, 0); int head = -1; for (int tail = 0; tail < dna_length; ++tail){ while(head+1 < dna_length && C > 0){ head++; cnt[dna[head]]++; if (cnt[dna[head]] == reqs[dna[head]]) C--; } if (C <= 0) res = min(res, head-tail+1); if (cnt[dna[tail]] == reqs[dna[tail]]) C++; cnt[dna[tail]]--; } if (res == 1e9) cout << "impossible\n"; else cout << res << '\n'; 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...