 ALDONIS
| Введение На планете CORPI, населенной рассой aldonis, время отсчитывается при помощи часов необычной конструкции: часовой механизм представляет собой набор соединенных между собой определенным образом желобов. В каждом из двух желобов A и B, имеющих K и N углублений, могут лежать металлические шарики по одному в ячейке;
желоб Т, подъемник, заполняется шариками автоматически из центрального распределительного узла, где имеется неограниченный их запас. По мере необходимости шарики поступают из него в желоба A или B в требуемом количестве;
по истечении каждого такта М шаров перемещаются из желоба A в B или из B в A, или из Т в один из желобов A или B - до момента полного заполнения принимаемого или полного освобождения передающего желоба. Если в результате таких перемещений один из желобов полностью заполняется, то происходит сбрасывание всех его шариков в желоб T и ожидается следующий такт;
в желоб Z, размерностью не превышающий 3*K+N углублений, кладутся P шариков, являющихся чем-то вроде стрелки земного механического будильника, позволяющие установить время подачи звукового сигнала.
Если в определенный момент времени количество шариков в желобе Z станет равным суммарному количеству шариков желобов A и B, то раздастся звонок и шарики из желобов A, B и Z перейдут на центральный распределительный узел (ЦРУ). Замечание По истечении половины планетных суток все шарики в любом случае перейдут на ЦРУ. В сутках на CORPI не более 50000 тактов Задача Составьте программу ALDONIS, которая должна определить, раздастся ли звонок в одном из домов, где были установлены новые часы, если: в файле ALDONIS.DAT в одной строке через пробел последовательно расположены три целых числа P, K и N соответственно
результат расчетов программы выведите в файл ALDONIS.BEP в виде строки Standup, если звонок раздастся, в виде строки Sleep, если звонок никогда не раздастся, но таймер был установлен корректно, и в виде строки Nothing, если таймер был установлен некорректно
Например:
ALDONIS.DAT 170 40 130 ALDONIS.BEP Standup
|
|---|