Алгоритмы(1657 задач)
Структуры данных(279 задач)
Интерактивные задачи(17 задач)
Другое(54 задач)
Дан список целых чисел. Требуется “сжать” его, переместив все ненулевые элементы в левую часть списка, не меняя их порядок, а все нули - в правую часть. Порядок ненулевых элементов изменять нельзя, дополнительный список использовать нельзя, задачу нужно выполнить за один проход по списку. Распечатайте полученный список.
Вводится список чисел. Все числа списка находятся на одной строке.
Выведите ответ на задачу.
4 0 5 0 3 0 0 5
4 5 3 5 0 0 0 0
\(N\) кеглей выставили в один ряд, занумеровав их слева направо числами от \(1\) до \(N\). Затем по этому ряду бросили \(K\) шаров, при этом \(i\)-й шар сбил все кегли с номерами от \(l_i\) до \(r_i\) включительно. Определите, какие кегли остались стоять на месте.
Программа получает на вход количество кеглей \(N\) и количество бросков \(K\). Далее идет \(K\) пар чисел \(l_i\), \(r_i\), при этом \(1\le l_i\le r_i\le N\).
Программа должна вывести последовательность из \(N\) символов, где \(j\)-й символ
есть “I
”, если \(j\)-я кегля осталась стоять, или
“.
”, если \(j\)-я кегля была сбита.
10 3 8 10 2 5 3 6
I.....I...
Известно, что на доске 8×8 можно расставить 8 ферзей так, чтобы они не били друг друга. Вам дана расстановка 8 ферзей на доске, определите, есть ли среди них пара бьющих друг друга.
Программа получает на вход восемь пар чисел, каждое число от 1 до 8 - координаты 8 ферзей.
Если ферзи не бьют друг друга, выведите слово NO
, иначе выведите YES
.
1 7 2 4 3 2 4 8 5 6 6 1 7 3 8 5
NO
1 8 2 7 3 6 4 5 5 4 6 3 7 2 8 1
YES
Дан список из \(N\) (\(1 \le N \le 100000\)) целых чисел и число \(K\) (\(|K| < 100000 \)). Циклически сдвиньте список на \(|K|\) элементов вправо, если \(K\) – положительное и влево, если отрицательное число.
Программа получает на вход список целых чисел, затем число \(K\).
Выведите ответ на задачу.
Решение должно иметь сложность \(O(N)\), то есть не должно зависеть от \(K\). Дополнительным списком пользоваться нельзя.
5 3 7 4 6 3
7 4 6 5 3
Вася готовит инвентарь для ролевой игры. В игре должны принять участие \(n\) игроков, каждый из которых будет изображать персонажа фантастического мира. В процессе игры каждый персонаж будет обладать некоторым уровнем \(x\), который представляет собой целое число от \(1\) до \(m\).
Для обозначения уровня планируется использовать специальные значки двух цветов. Белый значок обозначает один уровень, а красный значок — k уровней. Игрок, изображающий персонажа с уровнем \(x\), должен иметь \(a\) белых значков и \(b\) красных значков, чтобы сумма \((a + bk)\) была равна \(x\). При этом персонажу не разрешается иметь более чем \((k - 1)\) белых значков.
Значки для игры готовятся заранее, однако уровни персонажей заранее неизвестны. Для успешного проведения игры всем персонажам необходимо выдать соответствующее их уровням количество значков. Возникает вопрос: какое минимальное суммарное количество значков необходимо подготовить для успешного проведения игры при любых уровнях участвующих персонажей.
Требуется написать программу, которая по заданным числам \(n\), \(m\) и \(k\) вычисляет минимальное количество значков, которое необходимо подготовить для успешного проведения игры.
Входной файл содержит расположенные в одной строке три целых числа: \(n\), \(m\) и \(k\) (\(1 \le n \le 10^4\), \(1 \le m \le 10^5\), \(1 \le k \le 10^5\)).
В выходном файле должно содержаться одно целое число — минимальное количество значков, которое требуется подготовить.
В приведенном примере необходимо подготовить 6 красных и 3 белых значка.
3 4 2
9