Информатика

15 724 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Гурман Яблочков работает редактором известного гастрономического издания. Он разъезжает по всему миру, дегустируя новые изыски именитых шеф-поваров самых фешенебельных ресторанов высокой кухни. У Яблочкова есть свой фирменный способ ревью: в каждом заведении Яблочков заказывает два набора блюд в разные дни. Все заказанные блюда разные, так как Яблочков не любит есть одно и то же. Для каждой пары блюд из разных наборов он точно помнит, какое из них лучше по его ощущениям, или что они одинаковы по вкусовым качествам. Затем гурман оценивает каждое блюдо положительным целым числом.

Однажды, во время очередной ревизии, ресторан кельтской средневековой кухни «Пуассон», подающий суп из каштанов с пихтой, теплый содовый хлеб, пряный лимонный пирог и другую народную еду, очень приятно удивил гурмана своим разнообразным меню, и эксперт заказал слишком много. Поэтому ему нужна помощь в оценке блюд.

Гурман в первый день дегустировал набор из n блюд, во второй день набор из m блюд. Он составил таблицу ощущений a размером nm, в которой описал свои впечатления. Если по мнению эксперта блюдо i из первого набора лучше блюда j из второго набора, то aij равно « > », в противоположном случае aij равно « < ». Блюда также могут быть равны по уровню, тогда aij равно « = ».

Теперь Яблочков хочет, чтобы вы помогли ему оценить каждое блюдо в наборах целым положительным числом. Так как Яблочков очень строгий дегустатор, то постарается оценить блюда так, чтобы максимальная из оценок была как можно меньше. В то же время Яблочков очень справедливый, поэтому никогда не оценивает блюда так, чтобы это шло вразрез с его ощущениями. Другими словами, если aij равно « < », то оценка блюда i из первого набора должна быть меньше оценки блюда j из второго набора, если aij равно « > », то должна быть больше, а если aij равно « = », то должна совпадать.

Помогите Яблочкову выставить оценки каждому блюду из обоих наборов так, чтобы это согласовывалось с его ощущениями, или определите, что это невозможно.

Входные данные
В первой строке заданы два целых числа n и m (1 ≤ n, m ≤ 1000 ) — количества блюд в каждый из двух дней.

Каждая из следующих n строк содержит строку из m символов. j-й символ в i-й строке задаёт значение aij. Все строки состоят только из символов « < », « > » и « = ».

Выходные данные
В первой строке выведите « Yes » (без кавычек), если можно сделать корректную оценку всем блюдам и « No » (без кавычек), если иначе.

В случае, если сделать корректную оценку можно, во второй строке выведите n целых чисел — оценки блюд первого набора, а в третьей строке m целых чисел — оценки блюд второго набора.
 
Примеры
Входные данные Выходные данные Пояснения
1 3 4
>>>>
>>>>
>>>>
Yes
2 2 2 
1 1 1 1 
Все блюда первого дня лучше всех блюд второго дня. Значит, самой высокой оценкой будет 2 для всех блюд первого дня.
2 3 3
>>>
<<<
>>>
Yes
3 1 3 
2 2 2 
 
3 3 2
==
=<
==
No Таблица противоречива: нет ни одного набора оценок, который удовлетворял бы ей.
Вводится натуральное число. Требуется разделить запятыми тройки его цифр (считая справа).

Входные данные
Вводится одно натуральное число, не превышающее 10100.

Выходные данные
Вывести то же число, разделяя тройки цифр запятыми.

Примеры
Входные данные Выходные данные
1 1000 1,000
2 12345678 12,345,678
3 999 999
Напишите процедуру с параметром n, которая выводит ёлочку с кроной высотой n
Основная программа должна содержать ввод значения переменной n и вызов процедуры

Примеры
Входные данные Выходные данные
1 5
    o
   ooo
  ooooo
 ooooooo
ooooooooo
Беси расположена на сети из N (2≤N≤105) вершин помеченных 1…N и 2N порталов помеченных 1…2N. Каждый портал соединяет две различных вершины u и v (u≠v). Множество порталов может соединять некоторую пару вершин.
Каждая вершина v соседняя для четырёх различных порталов. Список порталов вершины v задаётся как pv=[pv,1,pv,2,pv,3,pv,4].

Ваше текущее положение может быть представлено упорядоченной парой (current vertex,current portal); то есть парой (v,pv,i) где 1≤v≤N и 1≤i≤4. Вы можете использовать одну из следующих операций для изменения своего текущего положения:

Изменить текущую вершину перемещением через текущий портал.
Переключить текущий портал. В каждой вершине первые два портала в списке объединены в пару и последние два портала в списке также объединены в пару. Поэтому если Ваше текущее состояние (v,pv,2), то Вы можете переключиться чтобы использовать портал (v,pv,1) и обратно. Аналогично, если Ваше текущее положение (v,pv,3) Вы можете переключиться на портал (v,pv,4) и обратно. никакие другие переключения не разрешены (например, Вы не можете переключиться с портала pv,2 на портал) pv,4).
Всего имеется 4N различных состояний. К несчастью, может не оказаться, что что любое состояние достижимо из любого с помощью последовательности заданных операций. Поэтому, за цену cv (1≤cv≤1000) мунов вы можете сделать перестановку списка порталов соседних вершине v, в любом желаемом Вами порядке. После этого первые два портала в списке объединяются в одну пару, а последние два портала - в другую пару.

Например, если Вы переставить порталы вершины v в порядке [pv,3,pv,1,pv,2,pv,4], Это означает. что если Вы в вершине v,

Если Вы в портале pv,1, Вы можете переключиться на портал pv,3 и обратно
Если Вы в портале pv,2, Вы можете переключиться на портал pv,4 и обратно
Теперь Вы не можете переключаться с портала pv,1 на pv,2, или с портала pv,3 на портал pv,4 и обратно.
Вычислите минимальное количество мунов, требуемых для модификации сети таким образом, чтобы сделать достижимым каждое состояние из каждого состояния. Гарантируется, что тестовые данные сконструированы таким образом, что существует хотя бы один способ такой модификации сети.

Входные данные: 
Первая строка содержит N.
Каждая из следующих N строк описывает вершину. Строка v+1 содержит 5 разделённых одиночными пробелами целых чисел cv,pv,1,pv,2,pv,3,pv,4.
Гарантируется, что для каждой v все pv,1,pv,2,pv,3,pv,4 различны, и каждый портал появляется в списках ровно двух вершин.

Выходные данные: 
Одна строка содержит минимальное количество мунов требуемых для модификации сети чтобы сделать возможным достижимость каждого состояния из другого состояния.
 
Примеры
Входные данные Выходные данные Пояснение
1 5
10 1 4 8 9
11 1 2 5 6
12 9 10 2 3
3 4 3 6 7
15 10 8 7 5 
13 Достаточно сделать перестановку списков вершин 1 и 4. Это требует c1+c4=13 мунов. Перестановки такие: p1=[1,9,4,8] и p4=[7,4,6,3].
На вход подается число N - количество элементов массива. 
Далее идут два массива из N целых чисел каждый: элементы первого массива идут по одному в каждой строке, элементы второго массива - записаны все в одной строке через пробел.
Заполните два массива и выведите их элементы через пробел в одну строку: первый массив в первой строке, второй массив во второй строке.

 
Примеры
Входные данные Выходные данные
1 3
1
2
3
4 5 6
1 2 3
4 5 6
Напишите процедуру с параметром n, которая выводит ёлочку с кроной высотой n
Основная программа должна содержать ввод значения переменной n и вызов процедуры

Примеры
Входные данные Выходные данные
1 5
    o
   ooo
  ooooo
 ooooooo
ooooooooo
По данному целому числу N распечатайте все квадраты натуральных чисел, не превосходящие N, в порядке возрастания. Из арифметических операций разрешается использовать только сложение и вычитание.

Входные данные: вводится натуральное число.

Выходные данные: выведите ответ на задачу.
 
Примеры
Входные данные Выходные данные
1 50 1 4 9 16 25 36 49
В мире волшебников серебряный сикль равняется 29 бронзовым кнатам, а 17 сиклей равны 1 золотому галеону. В мире маглов галеон равен примерно 5 фунтам. Однако курс обмена может меняться.

Рон старался учить заклинания, но не всегда у него получалось то, что он хотел. Недавно он нашел новую игру «Казино волшебников». В этом казино играют на виртуальные сикли, а каждый раунд игры состоит в применении того или иного заклинания. Перед началом игры у Рона ноль сиклей на счету, но программа в любой момент предоставляет ему неограниченный кредит.

Перед началом каждого раунда программа сообщает, на какую тему будет очередное волшебное задание и Рон делает ставку на то, что он справится с заданием. В самом начале игры Рон всегда делает ставку в 1 сикль. Если Рон выполняет задание правильно, то он выигрывает раунд и ставка плюсуется к его счету. Если у него ничего не получилось, то он проигрывает, и ставка вычитается из его счета. Рон очень азартный, поэтому после проигрыша всегда увеличивает ставку в 2 раза. Однако после выигрыша, дабы не вспугнуть удачу, Рон всегда снижает ставку до 1 сикля. Наконец, одолев очередное задание, и выиграв этот раунд, Рон решает закончить игру.

Например, пусть Рон правильно выполнил первое задание (выиграл начальную ставку в 1 сикль, поставил на следующий раунд 1 сикль), затем не выполнил второе задание (проиграл 1 сикль и удвоил ставку), не справился с третьим заданием (проиграл 2 сикля и снова удвоил ставку), но четвертое задание ему все-таки удалось выполнить (выиграл 4 сикля, сбросил ставку на 1 сикль). Затем он правильно выполняет и пятое задание (выиграл 1 сикль) и заканчивает игру. Итого на его счету после игры: 1 – 1 – 2 + 4 + 1 = 3 сикля.

Требуется написать программу, которая по имеющейся записи хронологии игры определяет, какое количество сиклей выиграл или проиграл Рон.

Входные данные: Первая строка содержит целое число N (0 < N ≤ 2000) — количество заданий, которое выполнил Рон. В следующих N строках располагаются числа 0 или 1 (по одному числу в строке): 1, если Рон выполнил очередное задание, и 0 – если не выполнил
Выходные данные: Выведите одно целое число — выигрыш или проигрыш Рона (выигрыш определяется положительным числом, а проигрыш – отрицательным).

Примеры
Входные данные Выходные данные
1 5
1
1
0
1
1
4
Напишите процедуру с параметром n, которая выводит ёлочку с кроной высотой n.
Основная программа должна содержать ввод значения переменной n и вызов процедуры.
 
 
Примеры
Входные данные Выходные данные
1 5
    o
   ooo
  ooooo
 ooooooo
ooooooooo
Дана непустая строка s. Нужно найти такое наибольшее число k и строку t, что s совпадает со строкой t, выписанной k раз подряд.
Ограничение времени - 1 секунда.

Входные данные
Дана одна строка длины N, \(0 < N <= 10^6\), состоящая только из маленьких латинских букв.

Выходные данные
Выведите одно число - наибольшее возможное k.
 

 

Примеры
Входные данные Выходные данные
1 aaaaa 5
2 abcabcabc 3
3 abab 2
Напишите процедуру с параметром n, которая выводит ёлочку с кроной высотой n. Основная программа должна содержать ввод значения переменной n и вызов процедуры.
 
Примеры
Входные данные Выходные данные
1 5
    o
   ooo
  ooooo
 ooooooo
ooooooooo
Даны натуральное число n и целые числа a1, a2, ..., an. Найти номер минимального четного числа. Если чисел с минимальным четным значением несколько, то должен быть найден номер первого из них. 

Входные данные: в первой строке вводится число N - количество чисел в последовательности (0<N<100), а затем N целых чисел.
Выходные данные: выведите ответ на задачу

Примеры
Входные данные Выходные данные
1 7
4
9
6
-3
-4
8
-2
5
 
 
Дано натуральное число N (\(N<=10^9\)). Определить две самые большие цифры числа. 

Входные данные 
На вход подается одно число (число содержит как минимум 2 различные цифры).

Выходные данные 
Выведите две цифры через пробел, сначала наибольшую цифру числа, затем вторую по величине (не равную первой наибольшей цифре).
 

 

Примеры
Входные данные Выходные данные
1 45545 5 4
2 1113 3 1
Дано натуральное число N (\(N<=10^9\)). Определить его максимальную четную и минимальную четную цифры.

Входные данные 
На вход подается одно число.

Выходные данные 
Выведите через пробел два числа: сначала минимальную четную цифру, затем максимальную. Если четных цифр в числе нет, выведите NO.

Гарантируется, что если в  числе есть четные цифры, то их не менее двух.

 

Примеры
Входные данные Выходные данные
1 45545 4 4
2 111 NO
Дана последовательность целых чисел. Найти в ней минимальное число, не кратное 3. В последовательности имеется как минимум одно число не кратное 3

Входные данные: В первой строке вводится число N - количество чисел в последовательности, а затем N целых чисел, по одному в строке.
Выходные данные: Выведите ответ на задачу

Примеры
Входные данные Выходные данные
1 7
4
6
5
-3
-4
3
-2
-4
 
 
Дана последовательность целых чисел. Найти в ней минимальное число, кратное 3. В последовательности имеется как минимум одно число кратное 3

Входные данные: В первой строке вводится число N - количество чисел в последовательности (N - положительное число, не превышающее 100) , а затем N целых чисел, по одному в строке (каждое число не превышает по модулю 1000).
Выходные данные: Выведите ответ на задачу

Примеры
Входные данные Выходные данные
1 7
4
6
5
-3
-4
3
-2
-3
 
 
Дана последовательность целых чисел. Найти в ней максимальное число, кратное 3. В последовательности имеется как минимум одно число кратное 3

Входные данные: В первой строке вводится число N - количество чисел в последовательности, а затем N целых чисел, по одному в строке.
Выходные данные: Выведите ответ на задачу

Примеры
Входные данные Выходные данные
1 7
4
6
5
-3
-4
3
-2
6
 
 
Дана непустая последовательность целых чисел, оканчивающаяся нулем. Ноль в последовательность не входит, служит признаком ее окончания. Найти количество чисел последовательности, которые больше первого введенного числа.

Входные данные 
На вход поступают числа последовательности, по одному числу в строке. Ноль - признак окончания ввода.

Выходные данные 
Выведите ответ на задачу.
 

 

Примеры
Входные данные Выходные данные
1 3
5
3
4
7
0
3
Дана последовательность целых чисел. Найти в ней наименьшее нечетное число. В последовательности имеется как минимум одно нечетное число

Входные данные: В первой строке вводится число N - количество чисел в последовательности, а затем N целых чисел, по одному в строке.
Выходные данные: Выведите ответ на задачу

Примеры
Входные данные Выходные данные
1 7
4
2
5
-1
-4
6
-2
-1
В турнире участвуют N команд. Турнир проводится по олимпийской системе (команды играют на вылет, проигравшие команды выбывают из турнира, выигравшие проходят в следующий тур, ничьих не бывает). Число команд в этой задаче будет степенью двойки: N = 2 k .

Все команды пронумерованы числами от 1 до N. В первом туре играют команды с номерами 1 и 2, 3 и 4, 5 и 6 и т. д., всего играется N/2 матчей. По результатам этих матчей команды выходят во второй тур. Во втором туре играют победители первой и второй игры первого тура, победители третьей и четвёртой игры первого тура и т. д. Они выходят в третий тур. В третьем туре играют вместе победители первой и второй игры второго тура, победители третьей и четвёртой игры второго тура и т. д.

Вам даны результаты всех матчей. Определите номер команды, которая стала победителем турнира.
В первой строке входных данных записано число N – количество команд, участвовавших в турнире. Оно является степенью двойки и может принимать значения от 20 = 1 до 216 = 65536. Следующие N − 1 строк содержат результаты всех сыгранных матчей. Первые N/2 строк из них являются результатами матчей первого тура, затем идёт N/4 строк с результатами второго тура, N/8 строк с результатами третьего тура и т. д.

Результат каждого матча является одним из двух возможных чисел: 1 или 2. Число 1 означает, что в матче выиграла первая команда (номер которой меньше), число 2 означает, что в матче выиграла вторая команда (номер которой больше).
Программа должна вывести одно число – номер победившей в турнире команды.
 
Ввод Вывод
8
1
2
2
1
2
1
1
4

Примечание к ответу
Далее нарисована схема турнира для примера из условия. В турнире участвовало 8 команд. Результаты матчей: 1, 2, 2, 1, 2, 1, 1.
В первом туре играли команды 1 и 2, 3 и 4, 5 и 6, 7 и 8. Результаты матчей первого тура: 1, 2, 2, 1, во второй тур вышли команды 1, 4, 6, 7.
Во втором туре играли команды 1 и 4, 6 и 7. Результаты матчей второго тура: 2, 1.
В третий тур вышли команды 4 и 6. В последнем, третьем, туре играют команды 4 и 6, результат матча: 1, поэтому победителем турнира является команда 4.

Поделиться
Класснуть