Jest grudzień 2014, a 2015 prawie się zaczął. Wydaje się jednak, że nie wszyscy zdali sobie z tego sprawę.
Ale ludzie PPCG przybywają na ratunek!
Wejście
Wasz program ma siatkę podobną do ściany, w której dni w grudniu wyglądają inaczej niż w listopadzie i styczniu. Każdy tydzień rozpoczyna się w niedzielę i kończy w sobotę.
Dni w ciągu miesiąca są reprezentowane przez #
. Dni, które przypadają poza miesiącem, są reprezentowane przez (spacja, kod ASCII 32). Każdy tydzień jest na osobnej linii. Linie są oddzielone znakiem nowej linii (
\n
). Twój program może wymagać wycofania lub włączenia nowego wiersza na końcu danych wejściowych.
Na przykład jest to dane wejściowe z grudnia 2009 r .:
#####
#######
#######
#######
#####
Kalendarz jest zawsze z grudnia.
Zadanie
Biorąc pod uwagę dane wejściowe, musisz znaleźć rok związany z kalendarzem. Ponieważ kalendarz ma wiele lat, dla których kalendarz jest zgodny, musisz zwrócić rok (przed 2015 r.), Który jest najbliższy 2015 r. (Z wyłączeniem samego 2015 r.)
Twój program musi generować prawidłowe dane wyjściowe dla dowolnego roku <2015, z wyjątkiem tych, które mają układ kalendarza na grudzień, który jest taki sam jak dla innego roku (przed 2015) bliższego 2015.
Jeśli rok jest mniejszy niż 2014, należy również obliczyć różnicę między rokiem a 2014. Na przykład dla roku 2012 różnica wynosi 2
.
Wynik
Wyjście twojego programu musi być:
- Tekst:
Your calendar is for <year>.
(Uwaga: ponieważ pierwotnie został napisany jako „kalendarz”, zaakceptuję również tę pisownię). - Następnie następuje nowa linia (
\n
lub\r\n
). - Po tekście:
It's almost 2015.
- Jeśli rok jest <2014, po tym musi następować tekst:
You're <difference> years behind.
Musi być w osobnym wierszu. - Następnie następuje nowa linia (
\n
lub\r\n
). - Po tekście:
Go buy a new calendar!
- Opcjonalnie następuje nowa linia (
\n
lub\r\n
).
Zasady
- Możesz wybrać, czy chcesz otrzymywać kalendarz jako argument wiersza poleceń (np.
yourprogram.exe <calendar>
), Czy monit o wprowadzenie danych przez użytkownika. - Możesz założyć, że twój program nie otrzyma nieprawidłowych danych wejściowych. Niepoprawne dane wejściowe obejmują układ kalendarza, dla którego nie istnieje rok.
- Najkrótszy kod (w bajtach, w dowolnym języku) wygrywa.
Wszelkie niestandardowe argumenty wiersza polecenia (argumenty, które zwykle nie są wymagane do uruchomienia skryptu) są liczone do całkowitej liczby znaków.
Czego twój program nie może zrobić:
- Zależy od wszelkich zasobów zewnętrznych.
- Zależy od posiadania określonej nazwy pliku.
- Wyprowadzaj cokolwiek innego niż wymagane wyjście.
- Uruchomienie zajmuje wyjątkowo długo. Jeśli Twój program działa przez minutę na komputerze przeciętnego użytkownika domowego, jest nieprawidłowy.
- Twój program nie może być napisany w języku programowania, dla którego nie istniał publicznie dostępny kompilator / tłumacz przed opublikowaniem tego wyzwania.
Przykłady
Wejście:
#####
#######
#######
#######
#####
Wynik:
Your calendar is for 2009.
It's almost 2015.
You're 5 years behind.
Go buy a new calendar!
Wejście:
######
#######
#######
#######
####
Wynik:
Your calendar is for 2014.
It's almost 2015.
Go buy a new calendar!
Wejście:
#
#######
#######
#######
#######
##
Wynik:
Your calendar is for 2012.
It's almost 2015.
You're 2 years behind.
Go buy a new calendar!