Темы --> Информатика --> Язык программирования
    Процедуры и функции(96 задач)
    Массивы(232 задач)
    Типы данных(356 задач)
    Циклы(177 задач)
    Условный оператор (if)(164 задач)
    Python(260 задач)
    Standard Template Library(2 задач)
---> 32 задач <---
Источники --> Личные олимпиады --> Открытая олимпиада школьников
    2002(9 задач)
    2003(10 задач)
    2004(13 задач)
    2005(12 задач)
    2006(12 задач)
    2007(11 задач)
    2008-2009(19 задач)
    2009-2010(23 задач)
    2010-2011(19 задач)
    2011-2012(8 задач)
    2012-2013(21 задач)
    2013-2014(8 задач)
    2014-2015(8 задач)
Страница: << 1 2 3 4 5 6 7 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Оргкомитет Московской олимпиады по информатике решил издать книгу с решениями олимпиадных задач сразу на двух языках – на Паскале и на Си. При этом тексты решений на Паскале решили напечатать с одной стороны книги, а на Си – с другой стороны. Таким образом книгу стало можно читать как с начала, так и с конца, предварительно ее перевернув.

Тексты решений на Паскале заняли N первых страниц, которые пронумеровали от 1 до N. А тексты на Си – M последних страниц, которые пронумеровали числами от 0 (последняя страница) до M–1.

Книга состоит из отдельных листов. У листа две стороны, на каждой из которых печатается одна страница книги. При необходимости, между текстом на Паскале и текстом на Си оставляется одна пустая страница. Листы строго по порядку сшиваются и образуют книгу.

Например, если N=5 и M=3 страницы книги идут в следующем порядке. Сначала страницы решений на Паскале: 1 2 3 4 5, затем – страницы решений на Си – 2 1 0. Здесь на первый лист попадают страницы номер 1 и 2 решений на Паскале, на второй – 3 и 4, на третий — страница 5 решений на Паскале и страница 2 решений на Си, и, наконец, на четвертый лист — страницы 1 и 0 решений на Си (ровно в таком порядке!).

Если же, например, N=2 и M=3, то на первом листе будут напечатаны страницы 1 и 2 решений на Паскале, на втором – пустая страница и страница 2 решений на Си, на третьем – страницы 1 и 0 решений на Си.

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

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

Во входном файле содержатся три числа: N, M и номер листа P (1≤N≤1000, 1≤M≤1000, 1≤P≤1000).

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

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

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

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

Если листа с таким номером в книге не будет вообще, в обеих строках должны идти описания, соответствующие пустой странице.

Примеры
Входные данные
5 3
2

Выходные данные
P 3
P 4
Входные данные
5 3
3

Выходные данные
P 5
C 2
Входные данные
5 3
4

Выходные данные
C 1
C 0
Входные данные
2 3
2

Выходные данные
- -
C 2
Входные данные
2 3
10

Выходные данные
- -
- -
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes
Поле заполнено стрелочками, которые задают направление перехода из этой клетки. Требуется определить количество клеток поля, начиная движение с которых фишка никогда не покинет поля.

На бумаге нарисовали клетчатое поле NxM клеток. В каждой клетке нарисовали стрелочку в одном из четырех направлений «вправо», «вверх», «влево» или «вниз».

Дальше в некоторую клетку этого поля ставят фишку. Затем эту фишку сдвигают в соседнюю клетку в направлении стрелочки, нарисованной в клетке, где стоит фишка. Затем ее снова сдвигают по стрелке, нарисованной в той клетке, где она оказалась. Так продолжается до тех пор, пока фишка не окажется за пределами поля. Однако возможно, что фишка будет бесконечно ходить по полю и никогда не выйдет за его пределы.

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

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

Во входном файле заданы сначала размеры поля – число строк N и число столбцов M (1≤N≤1000, 1≤M≤1000). Далее идет N строк по M чисел в каждой, задающих направления стрелочек в клетках. Число 1 обозначает стрелочку вправо, 2 – вверх, 3 – влево, 4 – вниз. Числа в строке разделяются пробелами.

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

В выходной файл выведите одно число – количество клеток, начав с которых фишка никогда не покинет пределы поля.

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

Пример №1.Соответствует приведенному рисунку. Клетки, начавс которых, фишка никогда не покинет пределов поля на рисунке выделены серым цветом.

Примеры
Входные данные
6 5
3 1 1 4 2
1 2 4 3 1
4 2 1 1 4
1 2 3 3 3
3 1 4 4 4
2 2 3 4 2

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

Заданы целые числа X, Y, P, Q (–10100 <= X, Y, P, Q <= 10100). Требуется проверить равенство XY PQ. Напомним, что ab определяется следующим образом:

  • при b > 0, ab = a*a*...*a (b сомножителей)
  • при b = 0, a <> 0 ab = 1
  • при b < 0, a <> 0 ab = 1/a-b
  • для остальных комбинаций a и b значение ab не определено.
Входные данные

Во входном файле записаны числа X, Y, P, Q, каждое в отдельной строке.

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

Выведите слово correct, если данное равенство для полученных входных данных выполняется, или incorrect, если равенство не выполняется, или хотя бы одна из степеней не определена.

Примеры
Входные данные
2
4
4
2

Выходные данные
correct
Входные данные
2
3
3
2

 
Выходные данные
incorrect
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Некоторые банки выпускают банковские карты, которые могут использоваться для оплаты проезда в метро. При проходе через турникеты по этой карте каждый проход фиксируется, подсчитывается количество проходов за календарный месяц и раз в месяц с карточки списываются деньги в соответствии с тем, сколько было сделано проходов по специальным тарифам (приведены тарифы по состоянию на 15.10.2009):

Кол-во поездок Стоимость (руб.) Кол-во поездок Стоимость (руб.) Кол-во поездок Стоимость (руб.) Кол-во поездок Стоимость (руб.)
1 22 19 362 37 586.13 55 804.38
2 44 20 380 38 598.25 56 816.5
3 64.33 21 392.13 39 610.38 57 828.63
4 84.67 22 404.25 40 622.5 58 840.75
5 105 23 416.38 41 634.63 59 852.88
6 124 24 428.5 42 646.75 60 865
7 143 25 440.63 43 658.88 61 863.5
8 162 26 452.75 44 671 62 862
9 181 27 464.88 45 683.13 63 860.5
10 200 28 477 46 695.25 64 859
11 218 29 489.13 47 707.38 65 857.5
12 236 30 501.25 48 719.5 66 856
13 254 31 513.38 49 731.63 67 854.5
14 272 32 525.5 50 743.75 68 853
15 290 33 537.63 51 755.88 69 851.5
16 308 34 549.75 52 768 70 850
17 326 35 561.88 53 780.13    
18 344 36 574 54 792.25    

При совершении более 70 поездок с карточки списывается 850 рублей за 70 поездок, и по 15.71 за каждую поездку начиная с 71-й. Кроме того, если за месяц по карточке был совершен хотя бы один проход, то списывается банковская комиссия в размере 10 рублей (независимо от числа проходов), если же проходов по карте не было, то комиссия не списывается.

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

Кроме того, они заметили, что в некоторых случаях бывает выгодно совершать лишние проходы по карточке (например, если по карточке за месяц совершено 69 проходов, то надо сделать 70-й - списанная сумма в этом случае окажется меньше).

Известно, что в наступающем месяце Вася собирается сделать A самостоятельных поездок, Петя - B самостоятельных поездок, и еще С поездок они сделают вместе (то есть всего они сделают A+B+2C проходов через турникеты). Напишите программу, которая по заданным числам A, B и C определит минимальную сумму, которую они могут потратить (с учетом банковских комиссий, при необходимости совершив лишние проходы через турникеты).

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

Вводятся целые числа \(A\), \(B\), \(C\) (каждое из них из диапазона от 0 до 1000).

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

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

Примеры
Входные данные
1 1 0
Выходные данные
64.00
Входные данные
59 0 0
Выходные данные
860.00
Входные данные
10 10 10
Выходные данные
721.25
Входные данные
0 0 30
Выходные данные
860.00
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

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

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

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

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

Первая строка содержит текущую последовательность цифр, вторая строка — последовательность, которую требуется получить. Гарантируется, что обе последовательности не пустые, имеют одинаковую длину, не превосходящую 100 000, и состоят только из нулей и единиц. Цифры в строках записаны подряд (без пробелов).

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

Выведите минимальное количество нажатий на кнопки, с помощью которого можно решить поставленную задачу.

Примеры
Входные данные
1101
1011
Выходные данные
2
Входные данные
0000
1111
Выходные данные
4

Страница: << 1 2 3 4 5 6 7 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест