Colores HTML P90975


Statement
 

pdf   zip

html

Como probablemente sabrás, uno de los modos más conocidos (si bien, no el único) de describir un color es el modelo RGB (Red-Green-Blue), que describe la intensidad de los colores primarios que forman el color. Típicamente, la intensidad de cada color primerario se da con un byte de información (0-255), donde 0 indica la mínima intensidad y 255 la máxima. Por ejemplo, el color (0,255,0) es verde, y los colores (255,255,0) (rojo y verde) y (0,255,255) (verde y azul) dan lugar a los colores amarillo y cyan.

En el lenguaje HTML, los colores (las tuplas de 3 valores de 0 al 255) se describen en notación hexadecimal usando exactamente 7 caracteres, en la forma #rrggbb, donde rr (respectivamente, gg y bb) es la codificación en hexadecimal del valor 0−255 correspondiente a la intensidad del rojo (respectivamente, verde y azul). Los números hexadecimales son aquellos donde usamos base 16 (0,1,…,9,a,b,c,d,e,f) en vez de base 10. Los números del 0 al 255 se representan, en hexadecimal, del siguiente modo:

00, 01, 02, 03, …, 09, 0a, 0b, 0c, 0d, 0e, 0f, 10, 11, …, 1e, 1f, 20, 21, …, fc, fd, fe, ff. 

¿Te atreves a hacer un programa que sea capaz de convertir los colores de uno a otro formato?

Entrada

Una secuencia de casos de prueba, cada uno de los cuales ocupa una línea. Cada caso de pruebas empieza con una palabra (NORMAL o HTML) seguido de la descripción del color (tres enteros 0−255 separados por espacios en el primer caso, y siete caracteres de la forma #rrggbb en el segundo).

Salida

Para cada caso de pruebas, escribe la traducción del color descrito al otro formato.

Puntuación

  • TestA:   Entradas cuyos casos de prueba sólo son de la forma HTML.  40 Puntos 
  • TestB:   Entradas cuyos casos de prueba sólo son de la forma NORMAL.  40 Puntos 
  • TestC:   Entradas con casos de prueba de ambos tipos.  20 Puntos 
Public test cases
  • Input

    NORMAL 0 0 0
    NORMAL 1 2 3
    NORMAL 9 10 11
    NORMAL 15 16 17
    NORMAL 231 42 212
    NORMAL 128 129 101
    NORMAL 248 249 250
    NORMAL 255 255 255
    

    Output

    #000000
    #010203
    #090a0b
    #0f1011
    #e72ad4
    #808165
    #f8f9fa
    #ffffff
    
  • Input

    HTML #000000
    HTML #ffffff
    HTML #091011
    HTML #090a0b
    HTML #abbacc
    HTML #abcdef
    HTML #a9aa9c
    

    Output

    0 0 0
    255 255 255
    9 16 17
    9 10 11
    171 186 204
    171 205 239
    169 170 156
    
  • Information
    Author
    Omer Giménez
    Language
    Spanish
    Official solutions
    C++
    User solutions
    C++