ЗАДАЧИ НА ОЛИМПИАДУ ПО ПРОГРАМММИРОВАНИЮ ДЛЯ 1-2 КУРСА

1. Число прописью
-----------------
    Для  платежного  поручения  и других бухгалтерских  задач
часто требуется печать числа прописью.
    Напишите  программу,  которая считывает  числа  из  файла
INPUT.TXT и  выводит  грамматически  правильные названия этих
чисел в файл  OUTPUT.TXT. Числа в файле INPUT.TXT по значению
не превосходят 2 миллиардов (LONG).
Пример работы программы:
INPUT.TXT
1234567890
21001
0
2
OUTPUT.TXT
один миллиард двести тридцать четыре миллиона пятьсот  ! на одной !
     шестьдесят семь тысяч восемьсот девяносто рублей  ! строке   !
двадцать одна тысяча один рубль
ноль рублей
два рубля
    P.S. Для проверки окончания файла используйте  результат,
возвращаемый fscanf - количество введенных данных. (т.е. вер-
нется 0 при обнаружении конца файла во время ввода).
2. Реверси
----------
     Игра реверси (Отелло) ведется на доске  8x8 фишками окра-
шенными в  в два цвета  (одна сторона фишек черная, другая бе-
лая).  Допустимым  ходом игрока считается ход в пустую  клетку
доски, при  котором происходит переворот (изменение цвета) фи-
шек противника. Переворачиваются те фишки противника,  которые
находятся между только что поставленной фишкой  и уже стоящими
на  доске  фишками игрока, без пустых промежутков, в  горизон-
тальном, вертикальном и диагональных направлениях.
                До:                После:
            XO OOXOOXOOX        XO OOXXXXOOX
                 ^                   ^
              только что
            поставленная фишка
     Если никаких фишек не  переворачивается,  ход недопустим.
Если допустимых  ходов  нет, игрок должен пасовать. Выигрывает
тот, у кого после завершения игры (полного заполнения поля или
оба игрока не могут ходить) больше фишек его цвета.
     Написать программу, которая вводит текущее состояние дос-
ки и ход  игрока из файла INPUT.TXT, переворачивает фишки сог-
ласно  правилам  и  выводит  новое  состояние   доски  в  файл
OUTPUT.TXT. Если  ход не является допустимым, выводится только
сообщение "НЕДОПУСТИМЫЙ ХОД".
Пример работы программы:
INPUT.TXT                 Пояснение
.....X..                    . - пустые клетки доски
...OO...                    O - белые фишки
....OO.X                    X - черные фишки
...OX...
XOOOXOX.
...X..O.
...O...X
...X....
XD6                       Ходит Х в клетку D6
OUTPUT.TXT
.....X..
...OX...
...XOO.X
...XX...
XOOXXOX.
...X..O.
...O...X
...X....
3. Задача о переливании
-----------------------
     Найти решение  известной головоломки о переливании за на-
именьшее число ходов.
     В файле INPUT.TXT в первой строке находятся 3 целых числа:
1) Емкость 1 сосуда
2) Емкость 2 сосуда
3) Емкость 3 сосуда
Во второй строке находятся 3 следущих числа:
1) Начальное количество жидкости в 1 сосуде
2) Начальное количество жидкости во 2 сосуде
3) Начальное количество жидкости в 3 сосуде
В третьей строке находятся 3 следущих числа:
1) Конечное количество жидкости в 1 сосуде
2) Конечное количество жидкости во 2 сосуде
3) Конечное количество жидкости в 3 сосуде
     Сумма количеств во второй  и  третьей строке равны - жид-
кость нельзя проливать!
     В файл OUTPUT.TXT нужно вывести последовательность  изме-
нений количества жидкости в сосудах. (Первая и последняя стро-
ка соответствуют второй и третьей строке файла INPUT.TXT).
Пример работы программы:
INPUT.TXT
5 3 100
0 0 100
4 0 96
OUTPUT.TXT
0 0 100
5 0 95
2 3 95
2 0 98
0 2 98
5 2 93
4 3 93
4 0 96