Алгоритмы(1657 задач)
Структуры данных(279 задач)
Интерактивные задачи(17 задач)
Другое(54 задач)
На столе лежат n монеток. Некоторые из них лежат вверх решкой, а некоторые – гербом. Определите минимальное число монеток, которые нужно перевернуть, чтобы все монетки были повернуты вверх одной и той же стороной.
В первой строке входного файла содержится натуральное число \(n\) – количество монет (1 ≤ \(n\) ≤ 100).
В каждой из следующих \(n\) строк содержится одно целое число – 1 если монетка лежит вверх решкой или 0 если вверх гербом.
В выходной файл выведите минимальное количество монет, которые нужно перевернуть.
5 1 0 1 1 0
2
«Ну не гномы, а наказание какое-то!», – подумала Белоснежка, в очередной раз пытаясь уложить гномов спать. Одного уложишь – другой уже проснулся! И так всю ночь.
У Белоснежки \(n\) гномов, и все они очень разные. Она знает, что для того, чтобы уложить спать \(i\)-го гнома нужно \(a_i\) минут, и после этого он будет спать ровно \(b_i\) минут. Помогите Белоснежке узнать, может ли она получить хотя бы минутку отдыха, когда все гномы будут спать, и если да, то в каком порядке для этого нужно укладывать гномов спать.
Например, пусть есть всего два гнома, \(a_1\) = 1, \(b_1\) = 10, \(a_2\) = 10, \(b_2\) = 20. Если Белоснежка сначала начнет укладывать первого гнома, то потом ей потребуется целых 10 минут, чтобы уложить второго, а за это время проснется первый. Если же она начнет со второго гнома, то затем она успеет уложить первого и получит целых 10 минут отдыха.
Первая строка входного файла содержит число \(n\) (1 ≤ \(n\) ≤ \(10^5\)), вторая строка содержит числа \(a_1\),\(a_2\),… \(a_n\), третья – числа \(b_1\),\(b_2\),… \(b_n\) (1 ≤ \(a_i\), \(b_i\) ≤ \(10^9\)).
Выведите в выходной файл \(n\) чисел – порядок, в котором нужно укладывать гномов спать. Если Белоснежке отдохнуть не удастся, выведите число -1.
2 1 10 10 20
2 1
2 10 10 10 10
-1
Петя и Вася играют в очередную интересную игру. У них есть лист бумаги, на котором изображены \(n\) кружочков, помеченных числами от 1 до \(n\). Участники по очереди рисуют стрелочки, соединяющие кружочки. При этом стрелочку из кружочка a в кружочек \(b\) разрешено проводить, если выполнены два условия:
1. еще нет стрелочки из \(a\) в \(b\);
2. нельзя дойти по стрелочкам из \(b\) в \(a\).
Например, в позиции на рис. 1 можно поставить одну из трех стрелочек (рис. 2).
Проигрывает тот, кто не может сделать ход.
Петя решил написать программу, играющую в эту игру. Для этого он хочет сначала посчитать, сколько различных позиций может получиться на доске.
Входной файл содержит одно число \(n\) (1 ≤ \(n\) ≤ 100).
Выведите в выходной файл число возможных позиций без ведущих нулей.
3
25
Паук и паучиха плывут по озеру на двух веточках. Плавать они не умеют, поэтому смогут встретиться только тогда, когда веточки соприкоснутся.
Считая, что веточки имеют форму отрезков, и что они плывут с постоянными скоростями, определите, сколько осталось ждать встречи несчастным членистоногим.
Входной файл содержит 12 чисел: \(x_1\), \(y_1\), \(x_2\), \(y_2\), \(x_3\), \(y_3\), \(x_4\), \(y_4\), \(v_{1x}\), \(v_{1y}\), \(v_{2x}\), \(v_{2y}\). Координаты вершин первого отрезка: (\(x_1\), \(y_1\)) и (\(x_2\), \(y_2\)), координаты вершин второго отрезка: (\(x_3\), \(y_3\)) и (\(x_4\), \(y_4\)), скорость первого отрезка (\(v_{1x}\), \(v_{1y}\)), скорость второго отрезка (\(v_{2x}\), \(v_{2y}\)). Все числа целые и не превосходят по модулю \(10^4\). В начальный момент времени веточки не соприкасаются. Гарантируется, что веточки имеют ненулевую длину.
Выведите в выходной файл время до ближайшего момента, когда веточки соприкоснутся, с ошибкой не более \(10^{-4}\). Если веточки не соприкоснутся никогда, выведите число -1.
0 0 -1 3 4 4 7 7 3 0 0 -1
1.6
0 0 -1 3 4 4 7 7 1 0 0 -3
-1
Вася любит решать головоломки со спичками. Чаще всего они формулируется следующим образом: дано изображение \(A\), составленное из спичек; переложите в нем минимальное количество спичек так, чтобы получилось изображение \(B\).
Например, из номера текущего командного чемпионата школьников Санкт-Петербурга по программированию, можно получить ромб с диагональю, переложив всего три спички.
Головоломки, которые решает Вася, всегда имеют решение. Это значит, что набор спичек, используемый в изображении \(A\), совпадает с набором спичек, используемым в изображении \(B\). Кроме того, в одном изображении никогда не встречаются две спички, у которых есть общий участок ненулевой длины (то есть спички могут пересекаться, но не могут накладываться друг на друга).
Вася устал решать головоломки вручную, и теперь он просит вас написать, программу, которая будет решать головоломки за него. Программа будет получать описания изображений \(A\) и \(B\) и должна найти минимальное количество спичек, которые надо переложить в изображении \(A\), чтобы полученная картинка получалась из \(B\) параллельным переносом.
В первой строке входного файла содержится целое число \(n\) – количество спичек в каждом из изображений (1 ≤ \(n\) ≤ 1000).
В следующих n строках записаны координаты концов спичек на изображении \(A\). Спичка номер \(i\) описывается целыми числами \(x_{1i}\), \(y_{1i}\), \(x_{2i}\), \(y_{2i}\) – координатами ее концов. Следующие \(n\) строк содержат описание изображения \(B\) в таком же формате. Набор длин этих спичек совпадает с набором длин спичек с изображения \(A\).
Все координаты по абсолютной величине не превосходят \(10^4\). Все спички имеют ненулевую длину, то есть \(x_{1i}\) ≠ \(x_{2i}\) или \(y_{1i}\) ≠ \(y_{2i}\).
Выведите в выходной файл минимальное количество спичек, которые следует переложить, чтобы изображение \(A\) совпало с изображением \(B\), с точностью до параллельного переноса.
5 0 0 1 2 1 0 0 2 2 0 2 2 4 0 3 2 4 0 5 2 9 -1 10 1 10 1 9 3 8 1 10 1 8 1 9 -1 8 1 9 3
3