Темы
    Информатика(2656 задач)
---> 246 задач <---
Источники --> Командные олимпиады --> Московская командная олимпиада
    8 класс(18 задач)
    9-11 классы(228 задач)
Страница: << 12 13 14 15 16 17 18 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

В новой модели сотового телефона разработчики предусмотрели только 5 кнопок: «стрелка вверх», «стрелка вниз», «стрелка вправо», «стрелка влево» и «Ok». Чтобы набрать номер телефона, на экран выводится виртуальная клавиатура в виде такой таблицы:

1

2

3

4

5

6

7

8

9

выход

0

звонок

По ячейкам этой таблицы пользователь телефона может перемещать курсор вверх, вниз, вправо или влево. Для выбора цифры необходимо нажать кнопку «Ok». После набора всех цифр пользователь должен подвинуть курсор на ячейку «звонок» и нажать «Ok». Таблица не «зациклена» (это означает, что нажатие кнопки «вправо», например, из ячейки с цифрой 6 не приведет к перемещению курсора).

При вызове экранной клавиатуры курсор находится на кнопке с надписью «выход».

По заданному семизначному номеру телефона определите, сколько нажатий кнопок должен сделать пользователь, чтобы позвонить по этому номеру.

Входные данные

Во входном файле задан номер телефона, содержащий ровно 7 цифр.

Выходные данные

В выходной файл выведите одно число — минимальное количество нажатий суммарно на все кнопки, которое необходимо, чтобы совершить звонок по этому номеру.

Комментарии к примерам тестов

1. Это кнопки: вправо, Ok,вверх, Ok, вниз, Ok , Ok, Ok, Ok, Ok, вправо, Ok

Примеры
Входные данные
0800000
Выходные данные
12
Входные данные
1234567
Выходные данные
24
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

В Тридевятом Царстве было N городов, некоторые из которых были соединены дорогами. На 1 апреля Министр транспорта решил все дороги сделать односторонними, т.е. разрешить проезд по каждой дороге только в одном направлении, при этом сделав так, чтобы, однажды уехав из любого города, вернуться в него уже было невозможно вплоть до 2 апреля (когда двухстороннее движение будет восстановлено).

Помогите Министру ввести такое одностороннее движение.

Входные данные

Во входном файле записано сначала число N — количество городов (1≤N≤100). Затем записано число M — количество дорог (1≤M≤10000). Далее идет M пар чисел, задающих дороги (каждая дорога описывается номерами городов, которые она соединяет). Не бывает дорог из некоторого города в тот же город. Между двумя городами может быть несколько дорог.

Выходные данные

В выходной файл нужно выдать M пар чисел, соответствующих дорогам (дороги должны быть выданы в том же порядке, в котором они заданы во входном файле). Для каждой дороги сначала должен быть записан номер города, из которого по ней можно будет уехать после введения одностороннего движения, а затем — номер города, куда эта дорога ведет. Если решений несколько, выведите любое из них.

Если невозможно ввести одностороннее движение так, чтобы уехав из любого города в него уже нельзя было вернуться, выходной файл должен содержать одно число 0.

Примеры
Входные данные
4
6
1 2
1 2
2 3
2 4
4 3
1 4
Выходные данные
2 1
2 1
3 2
4 2
4 3
4 1
Входные данные
2
1
1 2
Выходные данные
2 1
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Дано верное равенство вида a1+a2+…+aN=b1+b2+…bM, где a1,a2,…,aN,,b1,b2,…,bM – некоторые действительные (не обязательно целые) числа. Требуется «округлить» это равенство, т.е. получить новое верное равенство c1+c2+…+cN=d1+d2+…+dM, где c1,c2,…,cN,d1,d2,…,dM — целые числа, и при этом c1 получено округлением числа a1 до целого вверх или вниз (так, например, число 1.7 разрешается округлить как до 1, так и до 2), c2 получено округлением a2, …, cN – округлением aN, d1округлением b1, …, dM – округлением bM. Если какое-то из чисел в исходном равенстве было целым, оно должно остаться без изменений.

Входные данные

Во входном файле задано сначала число N, затем N чисел a1, a2, …, aN, затем число M, затем числа b1, b2, …, bM. Каждое число задается на отдельной строке. M и N – натуральные числа, не превышающие 1000. Остальные числа — вещественные, каждое из них по модулю не превышает 1000 и содержит не более 6 цифр после десятичной точки. При этом a1+a2+…+aN=b1+b2+…bM.

Выходные данные

Если «округлить» равенство можно, то в выходной файл выведите сначала числа c1,c2,…,cN, а затем числа d1,d2,…,dM. Все числа должны быть целыми и выведены без десятичной точки. Числа должны разделяться пробелами или переводами строки. Если решений несколько, выведите любое из них.

Если округлить исходное равенство до верного целочисленного равенства невозможно, выведите одно число 0.

Комментарии к примерам тестов

1. Обратите внимание, что число –3 может округляться только в –3, в то время как 0.15 можно округлить как до 0, так и до 1, 2.7 – до 2 или до 3, –0.15 – до –1 или до 0.
Приведенное решение не является единственным: так же верным является, например, такое округление: 1+(–3)+2=0

2. Приведенное решение 1+3=1+2+1 не является единственным. Верными ответами также являются 2+2=1+2+1 и 2+3=1+2+2.

3.Здесь верными являются как ответ 1=1, так и 0=0.

Примеры
Входные данные
3
0.15
-3.000
2.7
1
-0.15
Выходные данные
1
-3
2
0
Входные данные
2
1.7
2.5
3
1
2.000
1.20
Выходные данные
2
2
1
2
1
Входные данные
1
0.5
1
0.5
Выходные данные
0
0
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Вася и Петя играют в следующую игру. Они берут колоду из 36 карточек. На каждой карточке написано число от 1 до 9 и каждая карточка покрашена в один из 4 цветов так, что есть ровно по 9 карточек каждого цвета, и они пронумерованы числами от 1 до 9. Карты перемешиваются, и игрокам раздается по несколько (не более чем по 18) карточек.

Дальше игроки по очереди делают ходы. За один ход игрок может выложить на стол одну или последовательно несколько карточек по следующим правилам. Карточку с цифрой 5 любого цвета можно выкладывать на стол без дополнительных условий. Карточку с другой цифрой можно выкладывать только если на стол уже выложена карточка того же цвета, на которой написано число на 1 большее или на 1 меньшее, чем на данной, или же карточка с той же цифрой, но другого цвета (не важно, была ли эта карточка выложена вами или вашим противником, и была ли она выложена на предыдущем ходе или раньше). Если ни одну карточку игрок выложить не может, он пропускает ход.

Напишите программу, которая по информации о том, какие карточки уже лежат на столе и какие есть у игрока, определит наибольшее число карточек, которое может быть выложено этим игроком на данном ходе.

Входные данные

Во входном файле записано сначала число K — количество уже выложенных на стол карточек. Далее идет K пар чисел, описывающих эти карточки. Затем записано число N — количество карточек на руках у игрока, который сейчас должен делать ход. Далее записано N пар чисел, описывающих эти карточки.

Каждая карточка описывается двумя числами — номером цвета (от 1 до 4) и цифрой, которая написана на карточке (от 1 до 9).

Ограничения: 0≤K≤35, 1≤N≤36, N+K≤36, все карточки различны.

Выходные данные

В выходной файл выведите одно число — наибольшее количество карточек, которые могут быть выложены на данном ходе.

Комментарии к примерам тестов

1.Это карты 1 3 (потому что на столе есть 1 4) и 1 6 (потому что на столе есть 1 5)

2.Первым ходом можно выложить 1 5, после этого мы имеем право выложить и 1 6, после которой выкладываем 3 6

3.Нельзя выложить ни одной карточки

Примеры
Входные данные
2
1 5
1 4
3
1 3
1 6
2 8
Выходные данные
2
Входные данные
0
4
2 8
1 5
3 6
1 6
Выходные данные
3
Входные данные
3
1 4 
1 5
1 6
2
2 8
2 9
Выходные данные
0
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Ученику второго класса рассказали правила, как нужно выполнять арифметические действия, чтобы вычислить значение арифметического выражения, состоящего из чисел, скобок и знаков арифметических операций + (сложение) и * (умножение). После этого ему дали упражнения — несколько задач, в которых требуется расставить порядок выполнения действий. Помогите ему.

Правила вычисления выражения, рассказанные ученику, звучат так. Если в выражении вообще нет скобок, то сначала выполняются все операции умножения слева направо, а затем — операции сложения также слева направо. Если же в выражении есть скобки, то находится самая левая закрывающая скобка и соответствующая ей открывающая. Выражение между ними не содержит скобок и может быть вычислено по вышеописанным правилам. Дальше это выражение (вместе со скобками) мысленно удаляется из выражения и заменяется числом – результатом. Если в выражении остались скобки, то процедура повторяется.

Напишите программу, которая для корректного выражения будет определять порядок выполнения арифметических действий. Поскольку сами числа в этой задаче нам будут не существенны, мы заменим их на знаки #.

Входные данные

Во входном файле записана одна строка, состоящая из символов #, +, *, (, ). Длина строки не превышает 250 символов. Строка соответствует правильному арифметическому выражению.

Выходные данные

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

Примеры
Входные данные
#+#*#
Выходные данные
#2#1#
Входные данные
#+#+(#+#)
Выходные данные
#2#3(#1#)
Входные данные
#+(#+#*#)*#+#
Выходные данные
#4(#2#1#)3#5#
Входные данные
#+#+#+#+#+#+#+#+#+#+#
Выходные данные
#1#2#3#4#5#6#7#8#9#10#
Входные данные
#+#+(#+(#+#))+(#+#)
Выходные данные
#4#5(#2(#1#))6(#3#)

Страница: << 12 13 14 15 16 17 18 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест