def policz_zle_wiersze(obraz):
zle = 0
kandydat_na_zly_nr_wiersza = -1
for j in range(0, 20): # nr_wiersza (index)
wiersz = obraz[j]
ile_jedynek = 0
ile_zer = 0
for i in range(0, 20):
znak = wiersz[i]
if znak == '1':
ile_jedynek += 1
else:
ile_zer += 1
bit_parzystosci = wiersz[-1] #string
if int(bit_parzystosci) != ile_jedynek % 2:
if zle == 0: # jesli to byl pierwszy zly, to zapamietaj kandydata
kandydat_na_zly_nr_wiersza = j+1
zle += 1
return (zle, kandydat_na_zly_nr_wiersza) # {ilość złych, nr_1.złego_wiersza}
def policz_zle_kolumny(obraz):
zle = 0
kandydat_na_zly_nr_kolumny = -1
for i in range(0, 20): # indeks kolumny
ile_jedynek = 0
ile_zer = 0
for wiersz in obraz:
znak = wiersz[i]
if znak == '1':
ile_jedynek += 1
else:
ile_zer += 1
bit_parzystosci = obraz[-1][i] # na planszy
if ile_jedynek % 2 != int(bit_parzystosci):
if zle == 0:
kandydat_na_zly_nr_kolumny = i+1
zle += 1
return (zle, kandydat_na_zly_nr_kolumny)
for i in range(0, len(dane)):
nr_obrazu = i+1
obraz = dane[i]
ile_zlych_wiersz = policz_zle_wiersze(obraz) # idąc wierszem, bity w pionie
ile_zlych_kolumna = policz_zle_kolumny(obraz) # idąc pionowo, bity w wierszu
if ile_zlych_kolumna[0] == 1 and ile_zlych_wiersz[0] == 1: # 1
# po jednej zlej w wierszu i jednej zlej w kolumnie
print(f'({nr_obrazu}, {ile_zlych_wiersz[1]}, {ile_zlych_kolumna[1]})')
elif ile_zlych_kolumna[0] == 0 and ile_zlych_wiersz[0] == 1: # 2
print(f'({nr_obrazu}, {ile_zlych_wiersz[1]}, {21})')
elif ile_zlych_wiersz[0] == 0 and ile_zlych_kolumna[0] == 1:
print(f'({nr_obrazu}, {21}, {ile_zlych_kolumna[1]})')
Witam. Robię zadanie i plan mój po krótce jest taki że:
1 zły wiersz + 1 zła kolumna → trzeba zmienić piksel,
1 zły wiersz tylko → trzeba zmienić bit na końcu wiersza,
1 zła kolumna tylko → trzeba zmienić bit na dole kolumny to wszystko jest super.
Nie mogę znaleźć błędu. Moje odpowiedzi to:
(3, 1, 21)
(14, 1, 21)
(29, 2, 21)
(32, 21, 1)
(45, 21, 18)
(72, 21, 8)
(90, 21, 5)
(129, 21, 8)
(142, 19, 16)
(143, 7, 21)
(154, 7, 21)
natomaist ich "poprawne", to :
(14,1,15)
(19,4,20)
(26,21,13)
(29,2,8)
(33,15,21)
(115,21,14)
(116,21,13)
(129,21,14)
(131,10,7)
(143,7,15)
(154,7,7)
(161,21,17)
(162,21,16)
(187,21,18)
Proszę o pomoc i życzę miłej soboty. Pozdrawiam