Feu un programa que rep la codificació d’una icona en dos colors i la mostra a la sortida usant caracters ASCII. Les icones tenen un tamany de 20 × 20 píxels i cada línia de píxels horitzontal es codifica fent servir 2 nombres enters, p i q. Tant p com q, en base 2, ens diuen quins píxels de cada fila cal omplir: cada bit amb valor 1 s’ha de pintar i cada bit amb valor 0 no s’ha de pintar.
Així doncs, els valors enters de p i q estan en l’interval [0, 220−1], i p codifica els píxels que cal omplir amb el color primari, que mostrarem amb el caracter ’#
’, i q codifica els píxels que cal omplir amb el color secundari, per al que farem servir ’.
’. Si tant p i q tenen un bit a 1 en la mateixa posició, el color primari té prioritat i en aquella posició escriurem ’#
’. Donat que escriurem els caracters en ASCII, allà on no calgui pintar cap color posarem un espai perquè la fila de pixels es mantingui ben posicionada. Ara bé, els espais al final de la línia no s’han d’escriure.
Vegem un exemple, donats p = 132 i q = 124. Passant-los a base 2, i afegint zeros a l’esquerra per arribar a 20 xifres, tenim, respectivament:
000000000000010000100 000000000000001111100
Aplicant les regles mencionades més amunt el resultat serà:
_____________#....#
a on hem fet servir els caracters ’_
’ per fer visibles els espais. Cal observar dues coses: 1) a la part final no hi ha els dos espais que corresponen als dos zeros de la dreta de p i q, i 2) p i q tenen un 1 a la mateixa posició (3a començant per la dreta) i a la sortida tenim ’#
’.
Entrada
L’entrada consisteix en un enter n que indica quantes icones caldrà escriure. Després venen n seqüències de 20 × 2 = 40 enters entre 0 i 220−1 que codifiquen els dos colors de cada filera de píxels de la icona.
Sortida
La sortida és cada una de les n icones pintada amb caracters ASCII, és a dir, 20 línies de text, seguida d’una línia en blanc. El text en blanc al final de cada línia no s’ha d’escriure, ja que no contribueix a mantenir la posició dels píxels pintats. Per tant, les línies de text a la sortida poden tener desde 0 caràcters (no hi ha pixels pintats), fins a 20 caràcters (l’últim píxel de la línia està pintat).
Input
2 0 0 0 0 0 0 0 0 29120 0 35360 29120 66576 64480 131208 130928 139784 122352 159816 102320 139528 122608 65552 65504 32800 32704 29120 3584 2560 1024 1024 0 0 0 0 0 0 0 0 0 0 0 0 0 8064 0 8256 8064 16416 16320 32784 32736 47120 18400 48144 17376 48528 16992 23968 8768 8256 8064 8064 0 8256 8064 16320 0 8256 8064 16320 0 4224 3840 3840 0 0 0 0 0
Output
### ### #...# #...# #.....#.....# #.........#...# #...#...#.....# #..###.....#..# #...#....#....# #...........# #.........# ###...### #.# # ###### #......# #........# #..........# #.###......# #.####.....# #.####.##..# #.###.##.# #......# ###### #......# ######## #......# ######## #....# ####