Pac-man P29646


Statement
 

Graphic problem

pdf   zip

html

Ajudeu en Pac-man a saber com de lluny està de cada punt del seu món n × m. Suposeu que es mou així: Si es troba a (x, y), en general pot anar a (x − 1, y), a (x + 1, y), a (x, y − 1) i a (x, y + 1). Però si es troba per exemple a (0, y) (és a dir, a la primera columna) i es mou a l’esquerra, apareix a (n − 1, y). I passa un fenomen similar si es mou des de l’última columna cap a la dreta, o des de la primera fila cap amunt, o des de l’última fila cap avall. Amb aquestes condicions, definim d(P), la distància Pac-man de cada punt P, com el mínim nombre de moviments que hauria de fer en Pac-man per arribar a P des de (x, y).

Entrada

L’entrada consisteix en sis enters n, m, x, y, c i p. Podeu suposar n ≥ 2, m ≥ 2, 0 ≤ x < n, 0 ≤ y < m, c ≥ 1, i p ≥ 1.

Sortida

Genereu una imatge (n, m). Cal pintar cada punt P amb color Rainbow(1529 − c · d(P)), on

Rainbow(z) = 







    (255, z, 0) si 0 ≤ z < 255, 
    (510 − z, 255, 0) si 255 ≤ z < 510, 
    (0, 255, z − 510) si 510 ≤ z < 765, 
    (0, 1020 − z, 255) si 765 ≤ z < 1020, 
    (z − 1020, 0, 255) si 1020 ≤ z < 1275, 
    (255, 0, 1530 − z) si 1275 ≤ z < 1530.

Finalment, la línia de codi

dib.pieslice([x - p, y - p, x + p, y + p], 45, 315, 'Yellow')

dibuixa el Pac-man. Assumiu que aquest dibuix del Pac-man queda completament dintre de la imatge, i que c · d(P) sempre és més petit que 1530.

Observació

Podeu obtenir 55 punts resolent casos on n i m són senars, i en Pac-man es troba exactament al centre del dibuix, com l’Exemple d’entrada 1.

Public test cases
  • Input

    201
    101
    100
    50
    10
    9
    

    Output

    ab-sample-1.png

     (201×101)

  • Input

    400
    320
    60
    160
    4
    25
    

    Output

    az-sample-2.png

     (400×320)

  • Input

    40
    30
    25
    20
    30
    4
    

    Output

    az-sample-3.png

     (40×30)

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