Это декабрь 2014 года, а 2015 год почти начался. Однако, похоже, не все это осознали.
Но люди PPCG приходят на помощь!
вход
Ваша программа имеет сетку, похожую на сетку, где дни в декабре месяце выглядят иначе, чем в ноябре и январе. Каждая неделя начинается с воскресенья и заканчивается субботой.
Дни в месяце представлены как #
. Дни, выходящие за пределы месяца, обозначаются как (пробел, код ASCII 32). Каждая неделя на отдельной строке. Строки разделяются символом новой строки (
\n
). Ваша программа может потребовать пропуска или включения новой строки в конце ввода.
Например, это входные данные за декабрь 2009 года:
#####
#######
#######
#######
#####
Календарь всегда месяц декабрь.
задача
Учитывая данные, вы должны найти год, связанный с календарем. Поскольку существует несколько лет, для которых совпадает календарь, необходимо указать год (до 2015 года), ближайший к 2015 году. (За исключением самого 2015 года.)
Ваша программа должна производить правильные выходные данные для любого года <2015, за исключением тех, которые имеют календарный план на декабрь, который соответствует календарному плану другого года (до 2015 года) ближе к 2015 году.
Если год <2014, вы также должны рассчитать разницу между годом и 2014 годом. Например, для 2012 года разница равна 2
.
Вывод
Вывод вашей программы должен быть:
- Текст:
Your calendar is for <year>.
(Примечание: так как это изначально было написано как «календарь», я также приму это написание.) - Далее следует перевод строки (
\n
или\r\n
). - Далее следует текст:
It's almost 2015.
- Если год <2014, за ним должен следовать текст:
You're <difference> years behind.
это должно быть в отдельной строке. - Далее следует перевод строки (
\n
или\r\n
). - Далее следует текст:
Go buy a new calendar!
- При желании следует символ новой строки (
\n
или\r\n
).
правила
- Вы можете выбрать, хотите ли вы получать календарь в качестве аргумента командной строки (например
yourprogram.exe <calendar>
) или запросить ввод данных пользователем. - Вы можете предположить, что ваша программа не получит неверный ввод. Неверный ввод включает в себя макет календаря, для которого не существует года.
- Самый короткий код (в байтах, на любом языке) выигрывает.
Любые нестандартные аргументы командной строки (аргументы, которые обычно не требуются для запуска скрипта) учитываются в общем количестве символов.
Что ваша программа не должна делать:
- Зависит от любых внешних ресурсов.
- Зависит от наличия определенного имени файла.
- Выведите что-нибудь кроме требуемого вывода.
- Возьми исключительно долго бегать. Если ваша программа выполняется более минуты на компьютере обычного домашнего пользователя, она недействительна.
- Ваша программа не должна быть написана на языке программирования, для которого не было общедоступного компилятора / интерпретатора до того, как был опубликован этот вызов.
Примеры
Входные данные:
#####
#######
#######
#######
#####
Вывод:
Your calendar is for 2009.
It's almost 2015.
You're 5 years behind.
Go buy a new calendar!
Входные данные:
######
#######
#######
#######
####
Вывод:
Your calendar is for 2014.
It's almost 2015.
Go buy a new calendar!
Входные данные:
#
#######
#######
#######
#######
##
Вывод:
Your calendar is for 2012.
It's almost 2015.
You're 2 years behind.
Go buy a new calendar!