Wpis z mikrobloga

Na piąteczek zadanie ode mnie:

Kojarzycie pewnie program MS Paint. W zadaniu chodzi o zaimplementowanie przyborników "wypełnij kolorem" oraz "pobierz kolor".

Dana jest macierz liczb naturalnych m x n, która reprezentuje nasz obszar roboczy a liczby reprezentują różne kolory.

np.

[1, 1, 4, 4, 1, 1]
[1, 1, 3, 4, 5, 5]
[2, 2, 3, 0, 0, 5]
[1, 7, 6, 7, 1, 1]
[6, 7, 0, 0, 8, 8]
[1, 1, 0, 1, 8, 9]

Pozycja każdego piksela jest reprezentowana przez parę liczb naturalnych gdzie (0, 0) to lewy górny piksel a (n-1, m-1) to prawy dolny. Czyli macierz ma m wierszy, n kolumn a para (kolumnaX, wierszY) określa pozycję piksela.

Następnie dane są zapytania PICK X Y oraz FILL X Y C.
X i Y to współrzędne pikseli a C oznacza kolor.
PICK X Y zwraca kolor piksela (X, Y), natomiast FILL X Y C wypełnia kolorem C piksel (X, Y) oraz wszystkie piksele, które są osiągalne z (X, Y) tj. mają początkowo ten sam kolor oraz da się do niego przejść poprzez inne piksele o tym samym kolorze, które sąsiadują ze sobą jeżeli stykają się całą krawędzią (czyli góra, dół, lewo, prawo).

Zapytań PICK jest w sumie p a zapytań FILL jest w sumie q.

np.

[1, 1, 4, 4, 1, 1]
[1, 1, 3, 4, 5, 5]
[2, 2, 3, 0, 0, 5]
[1, 7, 6, 7, 1, 1]
[6, 7, 0, 0, 8, 8]
[1, 1, 0, 1, 8, 9]

PICK 3 0 -> 4
FILL 2 0 1
FILL 5 0 2
FILL 5 0 4
PICK 1 2 -> 4

#dailycodingproblem #programowanie
  • 2
  • Odpowiedz