https://syscalls.mebeim.net/?table=x86/64/x64/latest - список системных вызовов и описание их кодов для x86 https://www.felixcloutier.com/x86/ - список инструкций для x86 https://habr.com/ru/companies/badoo/articles/493856/ - сводка по работе с strace. Он для отладки и анализа взаим-я программы с системой.
Чтобы решить задачу уничтожения гор до столкновения с ними, необходимо на каждом шаге определять самую высокую гору и стрелять в неё. Это гарантирует нам, что корабль не столкнётся с горой, так как мы всегда уменьшаем высоту наибольшего препятствия на пути. В цикле считываются высоты восьми гор, а также каждая считанная гора сравнивается с текущей максимальной горой. Корабль стреляет в самую высокую гору, пролетая между ними, до тех пор пока их не останется.
В данной задаче используются условные операторы if,else. Необходимо помочь Тору собрать силы света. Изначально даны координаты Тора, точку, с которой он начинает движение. Если координаты Тора будут отличаться от местонахождения сил света, то программа будет пытаться довести Тора до них, используя направления движения (N S W E)
В данном решении задачи используется стратегия управления тягой на основе вертикальной скорости. Если вертикальная скорость падения превышает -40 м/с (т.е. становится слишком отрицательной), включается максимальная тяга для замедления падения (то есть включается сдерживающее ускорение 4 м/c^2)
Необходимо преобразовать текстовую строку в ASCII-арт, используя заданный алфавит символов в графическом представлении. Каждая буква представлена в виде матрицы символов фиксированной ширины и высоты. Есть слово "manhattan", которое необходимо преобразовать в различные варианты его внешнего вида. Для преобразования текста была задействована стандарная функция transform из библиотеки "algorithm".
Задача состоит в том, чтобы найти соседние клетки у некого древа. Для этого используется "vector". Создается сетка (матрица) по которой мы будем считывать значения с использованием цикла: если элемент равен 1, то выводим его координаты. Также если у элемента есть соседи, то в вывод добавляются и их координаты.
Бэтмен должен найти заложников в многоэтажном здании до того, как сработают бомбы. Здание представлено в виде прямоугольной сетки окон размером w*h. В основу решения легла адаптация бинарного поиска для двумерной сетки, т.е вместо обычного одномерного бинарного поиска используется разделение области поиска по обеим осям одновременно. Данное решение схоже с логарифмом, из-за деления пополам (52,53) Начальный диапазон по X от 0 до w-1 (w элементов) и после каждого хода диапазон уменьшается вдвое:то есть В первом ходу: w элементов, во втором w/2 элементов, и так далее до k: w/k-1 элементов. По сути когда мы отсекаем области которые мы уже прошли, то это существенно влияет на быстрый поиск и вроде как еще ускоряет время работы программы (но это не точно).
Мы должны управлять клонами, которые появляются на 0 этаже и движутся вправо. Наша цель - чтобы хотя бы один клон достиг выхода (который находится на exitFloor и exitPos) за ограниченное количество ходов. В коде мы получаем данные о ведущем клоне (cloneFloor, clonePos, direction). Если клонов нет, то cloneFloor и clonePos равны -1, а direction - "NONE". Если ведущего клона нет, ждем (WAIT). Если клон находится справа от выхода (clonePos > exitPos) и движется вправо, то он уходит от выхода то блокируем, чтобы развернуть, если клон находится слева от выхода (clonePos < exitPos) и движется влево, то он уходит от выхода то блокируем, а в остальных случаях ждем.
Немного развлечемся и поиграем в карты. Перед нами задача составить карточную игру "war" между двумя игроками. Игроки поочередно выкладывают карты, и тот, чья карта старше, забирает обе. При равенстве карт объявляется дополнительный раунд - игроки кладут по 3 карты рубашкой вниз и разыгрывают решающий бой. По мимо цифровых номиналов карт у нас есть еще Валет, Король, Дама, Туз - но ведь это буквы верно? Чтоб преобразовать это в числа числовом эквиваленте нам понадобится стандартная функция stoi (string to int). Это необходимо за тем, чтобы избавиться от повторяющегося кода, пришлось бы прописывать кучу if для valueStr, а так удалось уложиться всего в 4 строчки if, просто у нас в этой задаче помимо номинала карты, есть же еще и масть, а на вход поступает строка например 10H - десятка червей.
Побудем аналитиками акций и поможем себе оценить когда наши акции несут потери, а когда растут, для этого составим программу, которая анализирует ряд значений одной акций и находит максимально возможную потерю при покупке акции в момент времени t0 и продаже в более поздний момент t1. Потеря выражается как разница в стоимости между t0 и t1. В решении представлена потоковая обработка данных (в цикле for) которая избавит нас от хранения всех значений в памяти, на мой взгляд это должно помогать если бы у нас этих значений было бы гораздо больше.
Задача на расчёт минимальной длины оптоволоконного кабеля для подключения всех зданий бизнес-парка согласно техническим требованиям, таким как: провода проходят с запада на восток, в нашей интерпретации удобно представить это в виде вектора, направленного по оси от нуля до значения x,y; Также кабель должен проходить по наикротчайшему пути; здания с одинаковой координатой x не могут использовать общий выделенный кабель. В качестве размера переменной использовал тип long long так как в условии написано, что длина может достигать до 2^63, а это больше чем int.