Hipercub P20096


Statement
 

Graphic problem

pdf   zip

thehtml

Donades les coordenades de 2n punts p0, …, p2n − 1, on pi = (xi, yi), uniu amb una recta tots els parells de punts pj i pk tals que j < k, i tals que j i k difereixen en exactament un bit.

Per exemple, j=10 i k=14 s’haurien de connectar, perquè 10 en binari és 10102, i 14 en binari és 11102.

Entrada

L’entrada comença amb dos noms de colors f i c, seguits de les dimensions a i b de la imatge, seguits d’n ≥ 1, seguida dels 2n parells x0, y0, x1, y1, …, x2n − 1, y2n − 1.

Sortida

Genereu una imatge a × b amb color de fons f. Dibuixeu-hi cada punt amb un cercle de color c de diàmetre 5. També, uniu els punts requerits amb una recta de color c.

Per dibuixar les rectes, feu servir la instrucció

    dib.line([(xj, yj), (xk, yk)], c)

on dib és el dibuix que esteu pintant, (xj, yj) i (xk, yk) són les coordenades dels punts pj = (xj, yj) i pk = (xk, yk) entre els quals es dibuixa la recta, i c és el color donat c. Tingueu en compte que si dibuixeu les línies entre pk i pj (invertint l’ordre), probablement algun píxel serà diferent i no obtindreu un AC.


Public test cases
  • Input

    Beige
    Red
    80
    50
    3
    10
    20
    10
    40
    30
    20
    30
    40
    50
    10
    50
    30
    70
    10
    70
    30
    

    Output

    sample-1.png

     (80×50)

  • Input

    Yellow
    Purple
    20
    10
    1
    5
    6
    14
    3
    

    Output

    sample-2.png

     (20×10)

  • Input

    Black
    Blue
    250
    250
    4
    25
    50
    25
    100
    75
    50
    75
    100
    75
    175
    75
    225
    125
    175
    125
    225
    125
    25
    125
    75
    175
    25
    175
    75
    175
    125
    175
    175
    225
    125
    225
    175
    

    Output

    sample-3.png

     (250×250)

  • Information
    Author
    Víctor Martín
    Language
    Catalan
    Official solutions
    Python
    User solutions
    Python