Zoznam úloh

2. Zarovnaný kalendár

Kolo už skončilo. Môžeš si pozrieť vzorové riešenie.

Najnovšia móda v oblasti kalendárov je kalendár, v ktorom má každý mesiac $$28$$ dní. Nie je to až taká novinka. Táto myšlienka je veľmi stará, ale KSPáci sa k nej dostali až nedávno. Rok sa v tomto kalendári skladá z $$13$$ mesiacov, každý má presne $$28$$ dní a na konci roka nasleduje špeciálny jeden deň, ktorý sa môže využiť na oslavy nového roka. Ak ste správne počítali, výsledný kalendár by mal presne toľko dní v roku ako náš bežný gregoriánsky kalendár. Niektorým KSPákom sa nový kalendár samozrejme nepáči, pretože ich pekné dátumy narodenia ako napr. $$11.11.$$ (tento dátum je super, pretože je zrkadlový a skladá sa iba z jednotiek) sa zmenia na nezaujímave $$7.12.$$ Preto by všetci chceli rýchlo vedieť, ako bude vyzerať ich dátum narodenia v novom kalendári (aby prípadne mohli protestovať alebo bojovať za jeho zavedenie). Takisto by ich zaujímalo, ktoré dni z nášho kalendára budú nejaké pekné dátumy v novom.

Úloha

Táto úloha sa bude skladať z dvoch častí. V prvej časti budete prevádzať dátumy z nášho kalendára do $$28$$ dňového a v druhej časti zase naopak. Všetky dátumy budú patriť do roku $$2015$$, takže nebudete musieť riešiť prestupné roky. Posledný deň v roku $$28$$ dňového kalendára bude označený ako 1 14 (teda ako keby to bol prvý deň neexistujúceho $$14.$$ mesiaca).

Vstup

Na prvom riadku vstupu je číslo $$1$$, ktoré znamená, že sa bude prevádzať z nášho kalendára do $$28$$ dňového alebo $$2$$, ak to bude naopak. Nasleduje číslo $$n$$, $$1 \leq n \leq 10^5$$ – počet riadkov s dátumami. Ďalej máme $$n$$ riadkov, každý obsahujúci dátum buď v našom alebo $$28$$ dňovom formáte (dátumy sú uvedené klasicky, najskôr deň, potom mesiac). Vstupy budú rozdelené podľa toho, z ktorého kalendára prechody obsahujú. Ak sa vám podarí napr. prevádzať iba z gregoriánskeho kalendára do $$28$$ dňového, môžete stále získať nejaké body.

Výstup

Pre každý dátum zadaný na vstupe vypíšte jeho ekvivalent v opačnom formáte.

Hodnotenie

Zo 6 bodov za popis budú 4 udelené štandartne za popis a zvyšné 2 za eleganciu vášho kódu. Body za kód sa rozdelia rovnomerne medzi obidva prevody (teda 2 za jeden smer a 2 za druhý).

Príklady

Input:

1 3
11 11
1 2
31 12

Output:

7 12
4 2
1 14

Input:

2 3
7 12 
4 2 
1 14

Output:

11 11
1 2
31 12
Pre odovzdávanie sa musíš prihlásiť.
Trojsten

Korešpondenčný seminár z programovania zastrešuje občianske združenie Trojsten.

Kontakt
Ďalšie projekty