Вопрос Помогите пожалуйста решить задачку по программированию на питоне или с++

Регистрация
28 Сен 2013
Сообщения
88
Репутация
0
Спасибо
0
Монет
0
299064074_d067881cf7d3b685cad69169a0f6df70_240x240.png

299064074_8033eab9c0e846a083b07b1b60f52c57_240x240.png

 
дoлбoeб я твоя мать eбaл
 
#include
#include
#include
#include

using namespace std;

int main() {
size_t n, q;
cin >> n >> q;
char action;
int big;
int lesser;
deque result;
if (n == 1) {
for (size_t i = 0; i < q; ++i) {
cin >> action >> big;
result.push_back(big);
}
}
else {
deque records;
for (size_t i = 0; i < q; ++i) {
cin >> action;
if (action == '1') {
cin >> big >> lesser;
if (records.empty()) {
set tmp{ big, lesser };
records.push_back(tmp);
}
else {
auto flag = true;
for (auto& record : records) {
if (*record.begin() == big) {
record.erase(record.begin());
}
if (*record.begin() == lesser) {
record.insert(big);
flag = !flag;
}
}
if (flag) {
set tmp{ big, lesser };
records.push_back(tmp);
}
}
}
else if (action == '2') {
cin >> lesser;
for (const auto& record : records) {
if (record.contains(lesser)) {
result.push_back(*record.begin());
break;
}
}
}
}
}
for (const auto& x : result) {
cout
 
Для решения этой задачи мы можем использовать структуру данных, такую как стек. Стек позволит нам отслеживать текущее местоположение каждой коробки и ответить на вопросы Шерлока.

Вот C++ код, который решает эту задачу:

```cpp
#include &lt;iostream&gt;
#include &lt;stack&gt;
#include &lt;unordered_map&gt;

using namespace std;

int main() {
int n, q;
cin &gt;&gt; n &gt;&gt; q;

stack&lt;int&gt; boxes;
unordered_map&lt;int, int&gt; covering; // Хранит, какая коробка накрывает другую

for (int i = 1; i &lt;= n; ++i) {
boxes.push(i);
}

for (int i = 0; i &lt; q; ++i) {
int action, x, y;
cin &gt;&gt; action;

if (action == 1) { // Перекладывание коробки
cin &gt;&gt; x &gt;&gt; y;
covering[x] = y;
} else { // Вопрос Холмса
cin &gt;&gt; x;
while (covering.find(x) != covering.end()) {
x = covering[x]; // Находим верхнюю коробку
}
cout &lt;&lt; x &lt;&lt; endl;
}
}

return 0;
}
```

Этот код сначала создает стек с коробками, затем обрабатывает каждое действие (перекладывание коробок или вопрос Холмса). При перекладывании коробок мы обновляем информацию о том, какая коробка накрывает другую, а при вопросе Холмса мы находим верхнюю коробку и выводим ее номер.

Обратите внимание, что этот код предполагает, что входные данные корректны, и не включает проверку на ошибки ввода.
 
Назад
Сверху