В первый день вы получите два аккаунта. Один это логин и пароль в Slack, другой это логин и пароль в интру школы 42. Ага школы 42, я надеюсь вы уже в курсе почему школы 42, вам это должны были разъяснить на личной встрече. А если у вас еще этой встречи не было и вы читаете мой блог заблаговременно перед поступлением в школу, то вкратце могу сказать что школа программирования 21 от сбербанка это франшиза французской школы программирования 42 . И так еще раз по порядку: 1. Slack - тут вы будете общаться с пирами, то есть с друзьями товарищами по бассейну, а так же с администрацией школы. Это просто групповой чат . В слеке есть гурппы bocal и adm. Так вот в бокал писать только по техническим проблемам . Например комп завис, перезагрузился, мышь не работает и тд и тп. По административным и бытовым проблемам это в адм , вода закончилась на кухне, холодно в кластере, жарко в кластере, открыть окно, закрыт окно, привести гостя и тд и тп. Не путайте эти два канала, иначе выле...
ав
ОтветитьУдалить#include
Удалить#include
#include
#include
using namespace std;
int main() {
int n; // Количество чисел в массиве
cin >> n;
vector arr(n); // Массив чисел
for (int i = 0; i < n; ++i) {
cin >> arr[i]; // Ввод элементов массива. Обработка ошибок ввода отсутствует - предполагается корректный ввод.
}
int m; // Количество пар чисел, за которые дают конфету
cin >> m;
unordered_set> candies; // Множество пар чисел (конфеты), для быстрого поиска
for (int i = 0; i < m; ++i) {
int a, b;
cin >> a >> b; // Ввод пары чисел. Обработка ошибок ввода отсутствует - предполагается корректный ввод.
candies.insert({ min(a, b), max(a, b) }); // Добавление пары в множество (упорядочиваем для корректной работы)
}
// Сортировка пузырьком с учетом конфет
for (int i = 0; i < n - 1; ++i) {
bool swapped = false; // Флаг, указывающий на то, произошла ли перестановка элементов за один проход
for (int j = 0; j < n - 1 - i; ++j) { // Исправленная граница цикла для эффективности
if (arr[j] > arr[j + 1]) { // Если элементы находятся не в порядке возрастания
// Более явный и надежный способ проверки на конфету:
if (candies.find({ arr[j], arr[j + 1] }) == candies.end() && candies.find({ arr[j + 1], arr[j] }) == candies.end()) {
swap(arr[j], arr[j + 1]); // Если нет - меняем местами
swapped = true; // Устанавливаем флаг
}
}
}
if (!swapped) break; // Оптимизация: если за проход не было перестановок, массив отсортирован
}
// Вывод отсортированного массива
for (int i = 0; i < n; ++i) {
cout << arr[i] << (i == n - 1 ? "" : " "); // Вывод элемента, пробел, если это не последний элемент
}
cout << endl;
return 0;
}