Icones ASCII X81846


Statement
 

pdf   zip

html

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).

Public test cases
  • 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

    
    
    
         ###   ###
        #...# #...#
       #.....#.....#
      #.........#...#
      #...#...#.....#
      #..###.....#..#
      #...#....#....#
       #...........#
        #.........#
         ###...###
            #.#
             #
    
    
    
    
    
    
    
           ######
          #......#
         #........#
        #..........#
        #.###......#
        #.####.....#
        #.####.##..#
         #.###.##.#
          #......#
           ######
          #......#
          ########
          #......#
          ########
           #....#
            ####
    
    
    
    
  • Information
    Author
    PRO1
    Language
    Catalan
    Other languages
    Spanish
    Official solutions
    C++
    User solutions
    C++