Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 
[Положение] [Расписание] [Архив] [Содержание] [Задачи] [Рейтинг]

Задачи олимпиады "Школьная олимпиада по Красноярскому краю, 9-11 классы"

Задача A. Конфеты

(Время: 1 сек. Память: 16 Мб Баллы: 100)

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

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

В единственной строке входного файла INPUT.TXT записаны три натуральных числа A, B, C – количество конфет у первого, второго и третьего из друзей (A, B, C < 10 000).

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

В единственную строку выходного файла OUTPUT.TXT нужно вывести целое число от 1 до 3 – номер друга, пропустившего урок.

Примеры

INPUT.TXTOUTPUT.TXT
129 32 253
227 26 272
335 48 331

Задача B. Счёт

(Время: 1 сек. Память: 16 Мб Баллы: 100)

На уроке математики Марина Ивановна написала на доске N чисел: первое, второе, третье, четвёртое и так далее. Первый ученик из первого числа отнял второе, добавил третье, отнял четвёртое и так далее, а потом удалил первое число. Второй ученик из первого из оставшихся чисел отнял второе, добавил третье, отнял четвёртое и так далее, а потом удалил первое. Аналогично поступили и другие ученики. Так i-й ученик отнял от первого из оставшихся чисел второе, добавил третье число, отнял четвёртое число и так далее, а затем удалил первое. Последнему N-му ученику досталось только последнее N-е число. Каждый из учеников запомнил результат своих вычислений.

Сможет ли Марина Ивановна восстановить исходные числа, если она знает результаты первого, второго, третьего, …, последнего учеников?

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

В первой строке входного файла INPUT.TXT записано одно натуральное число N – количество чисел на доске (1 ≤ N ≤ 105). Во второй строке через пробел записаны N чисел – запомненных учениками результатов вычислений, каждое из которых не превышает по абсолютной величине 109.

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

В единственную строку выходного файла OUTPUT.TXT нужно вывести через пробел N исходных чисел.

Примеры

INPUT.TXTOUTPUT.TXT
12
0 1
1 1
23
1 -1 2
0 1 2

Задача C. Слова-анаграммы

(Время: 1 сек. Память: 16 Мб Баллы: 100)

Слова-анаграммы — это слова, записанные одними и теми же буквами в разном порядке, регистр букв при этом игнорируется. Анаграммами, например, являются слова «Волос» и «СЛОВО». Требуется найти в тексте пару слов, которые являются анаграммами.

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

В первой строке входного файла INPUT.TXT записан текст, состоящий не более чем из 255 символов. Текст содержит английские буквы, знаки препинания и пробелы между словами. Каждое слово – это непрерывная последовательность английских букв. В начале и конце текста может быть некоторое количество пробелов. Между словами может быть один или несколько пробелов. Гарантируется, что текст содержит ровно два слова, являющиеся анаграммами.

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

В выходной файл OUTPUT.TXT выведите через пробел два слова, которые являются анаграммами, сохранив порядок их следования и регистр букв в исходном тексте.

Пример

INPUT.TXTOUTPUT.TXT
1Kakoy rezon ubirat zerno, esli ego negde hranit?rezon zerno

Задача D. Вслепую по лабиринту

(Время: 1 сек. Память: 16 Мб Баллы: 100)

Это интерактивная задача.

Ваша цель – написать программу, управляющую роботом, который движется вслепую по лабиринту. Лабиринт состоит из N на M (3 ≤ N, M ≤ 30) клеток. Каждая из клеток может быть свободной или заблокированной (непроходимой). Все клетки на границе лабиринта непроходимые. Робот начинает работу в некоторой свободной клетке, он может переместиться на юг, запад, север или восток в свободную клетку. Робот не имеет оптических сенсоров, только сенсор удара, так что при попытке перемещения в заблокированную клетку сработает сенсор и робот останется в той же клетке.

Робот должен побывать во всех проходимых клетках лабиринта. Из начальной клетки гарантированно можно попасть во все достижимые клетки лабиринта.

Протокол взаимодействия

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

Каждая строка выходных данных должна представлять собой команду для робота. Это должна быть одна из пяти возможных строк: «SOUTH», «WEST», «NORTH», «EAST», или «DONE». Строка «DONE» должна быть напечатана после посещения роботом всех проходимых клеток. После вывода DONE программа должна завершать свою работу.

Каждая строка входных данных представляет собой ответ на действие робота. Это может быть строка «EMPTY», если робот успешно переместился в заданном направлении или строка «BLOCKED», если робот не смог переместиться из-за того, что клетка, в которую он хотел попасть, непроходима.

Пример

стандартный вводстандартный вывод
1BLOCKED
BLOCKED
EMPTY
BLOCKED
BLOCKED
EMPTY
BLOCKED
BLOCKED
EMPTY
EMPTY
BLOCKED
BLOCKED
EMPTY
BLOCKED
NORTH
EAST
SOUTH
EAST
SOUTH
WEST
SOUTH
WEST
NORTH
WEST
WEST
NORTH
EAST
NORTH
DONE

Примечание

Для корректной работы программы после каждой операции вывода данных вам необходимо делать переход на новую строку и очищать буфер вывода, то есть делать следующие операции:

  • В языке Pascal: flush(output)
  • В С/С++: fflush(stdout) или cout.flush()
  • В Java: System.out.flush()
  • В Python: sys.stdout.flush() из библиотеки sys
  • В C# и Basic: Console.Out.Flush()


Красноярский краевой Дворец пионеров, (c)2006 - 2017, ICQ: 151483