Hipercub

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.

Informació del problema

Autoria: Víctor Martín

Generació: 2026-01-25T10:07:49.430Z

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