Hipercub P20096


Statement
 

Graphic problem

pdf   zip

Donades les coordenades de 2n2^n punts p0,,p2n1p_0, \dots, p_{2^n - 1}, on pi=(xi,yi)p_i = (x_i, y_i), uniu amb una recta tots els parells de punts pjp_j i pkp_k tals que j<kj < k, i tals que jj i kk difereixen en exactament un bit.

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

Entrada

L’entrada comença amb dos noms de colors ff i cc, seguits de les dimensions aa i bb de la imatge, seguits d’n1n \ge 1, seguida dels 2n2^n parells x0x_0, y0y_0, x1x_1, y1y_1, …, x2n1x_{2^n - 1}, y2n1y_{2^n - 1}.

Sortida

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

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)p_j = (x_j, y_j) i pk=(xk,yk)p_k = (x_k, y_k) entre els quals es dibuixa la recta, i c és el color donat cc. Tingueu en compte que si dibuixeu les línies entre pkp_k i pjp_j (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