Nu exista diferente intre titluri.
Diferente intre continut:
La final, când se vor termina operaţiile, cărţilor de pe raft li se vor adăuga cele din deque şi se va afişa soluţia. În cazul presupus, soluţia va fi: $E B A D C$.
Pentru a înţelege cum se folosesc funcţiile membru ale clasei std::deque, am adăugat o parte din cod:
== code(cpp) |
deque <string> deq; // dequeul
vector <string> res; // rezultatul
int rotated = 0; // iniţial, secvenţa nu este rotită
for (int i = 0; i < M; ++ i) {
if (deq.size() > K) {
if (rotated == false) {
for (; deq.size() > K; deq.pop_back())
res.push_back( deq.back() );
}
else {
for (; deq.size() > K; deq.pop_front())
res.push_back( deq.front() );
}
}
if (s-a citit "ROTATE")
rotated = !rotated;
else // name conţine numele cărţii ce se va adăuga
rotated == false ? deq.push_front( name ) : deq.push_back( name );
}
if (rotated == false) {
for (; deq.size() > 0; deq.pop_back())
res.push_back( deq.back() );
}
else {
for (; deq.size() > 0; deq.pop_front())
res.push_back( deq.front() );
}
==
Întrucât operaţiile unui deque se execută în $O(1)$ amortizat, soluţia are complexitatea $O(N + M)$.
h3. 'Sir':problema/sir
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.