Icones ASCII

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, 2²⁰ − 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
2²⁰ − 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).

Informació del problema

Autoria: PRO1

Generació: 2026-01-25T16:39:03.180Z

© Jutge.org, 2006–2026.
https://jutge.org
