Задача № 1. Мешок фальшивых денег
Имеется N мешков монет, пронумерованных от 1 до N. На каждом мешке написано число лежащих в нем монет. Один мешок наполнен только фальшивыми монетами. В остальных мешках все монеты – настоящие.
Настоящая монета весит 10 г., фальшивая – 9 г.
Имеются весы с одной чашкой, которые показывают общий вес положенных на них монет.
Требуется определить наименьшее число взвешиваний, которые потребуются, для того чтобы определить в каком мешке фальшивые монеты при абсолютном невезении.Формат ввода:
Ввод производится из файла DENGI.DAT в следующем виде:
- первая строка - число N – количество мешков;
- далее идут N строк, в каждой строке номер мешка и число монет в мешке, разделенные пробелом:
1 m1
2 m2
...
N mN
Формат вывода:
Вывод необходимо производить в файл OUTPUT.DAT и дублировать на экран. Должно выводиться одно число - число взвешиваний.
Ограничение на время тестирования 2 сек.
Максимальная оценка 30 балловЗадача № 2. Грамматическая
Дан словарь, в котором N<=100 различных слов, состоящих из строчных букв русского алфавита. (кроме «ё»). Буквы «а, о, и, е, у, э, ю, я, ы» – гласные, остальные буквы – согласные. В каждом слове словаря не более 20 букв.
Каждое слово, встречающееся в словаре, может состоять из корня или из корня и приставки. Приставка всегда пишется перед корнем. Используются строчные буквы русского алфавита. Корень слова всегда содержит не менее 3 букв, причем хотя бы одна из них – гласная.
Любой корень встречается в словаре хотя бы в двух словах. Любая приставка встречается в словаре хотя бы в двух словах.
Требуется написать программу, которая производит морфологический разбор заданного слова на корень и приставку, образовывает новые слова, используя корень заданного слова и все приставки, которые возможно определить по данному словарю. Заданное слово может отсутствовать в словаре, но обязательно имеет либо корень, либо приставку, встречающиеся в словах словаря.
Формат ввода:
Входные данные вводятся из файла SLOVAR.DAT в следующем виде:
- первая строка – заданное слово для разбора
- вторая строка – число N – количество слов в словаре;
- далее N строк, в каждой строке записано одно слово
Например:
убор
4
светло
засветло
забор
бор
Формат вывода:
Вывод должен производится в файл GRAMM.DAT в следующем формате:
- первая строка:
приставка - <приставка>, корень - <корень>
- далее все слова, образованные из приставок словаря и корня заданного слова по одному в строке.
Например, для слова убор, содержимое файла GRAMM.DAT будет следующим:
приставка – у, корень - бор
забор
Ограничение на время тестирования 20 сек.
Максимальная оценка 30 баллов
Задача № 3. Игра Цзяньшицзы
Играют двое. Есть две кучки камней. Игроки ходят по очереди. Ход заключается в том, что игрок берёт камни из этих кучек, соблюдая следующие правила.
Из одной кучки можно брать любое количество камней (даже всю кучку) или можно брать камни одновременно из двух кучек, но обязательно одинаковое количество камней из каждой кучки. Выигрывает тот, кто своим ходом сможет забрать все лежащие на земле камни.
Требуется написать программу, которая делает один правильный (не ведущий к проигрышу) ход.
Формат ввода:
Входной файл GAME.TXT состоит из двух строк. В первой строке количество камней в первой кучке, во второй количество камней во второй кучке.
Количество камней в каждой из кучек не превышает 1 000 000 000.
Формат вывода:
Вывод необходимо производить в файл MOVE.DAT и дублировать его на экран.
В первой строке указывается количество оставшихся камней в первой кучке, во второй – количество оставшихся камней во второй кучке после хода программы.
Если выигрывающая стратегия у первого игрока отсутствует, то ваша программа должна вывести на экран текст "Выигрыша нет".
Пример ввода и вывода:
Ниже приведён пример входного файла данных и три возможных варианта ответа.
Содержимое файла GAME.TXT:
5
7
Выходной файл MOVE.DAT может содержать ответы:
4 или 3 или 5
7 5 3
Примечание
Может существовать несколько выигрывающих ходов, но достаточно вывести только один ход.
Ограничение времени тестирования: 20 сек.
Максимальная оценка: 40 баллов.