WItam Wszystkich!
Mam problem z tym jednym zadaniem. Proszę pomóżcie mi.
WItam Wszystkich!
Mam problem z tym jednym zadaniem. Proszę pomóżcie mi.
Uruchom IDE i pisz.
edit:
Dam Ci takie rozwiązanie w Pythonie (wiem... brzydki styl kodowania), przetłumacz je sobie do C++, jak Ci potrzeba:
def czyMoznaSkoczyc(plansza, poleIdx, dystans):
docelowePoleIdx = poleIdx + dystans
if docelowePoleIdx < len(plansza):
if plansza[docelowePoleIdx] == plansza[poleIdx]:
return True
return False
# liczba par pól pomiędzy którymi można przeskoczyć w czasie jednego skoku
def algorytm(we1, plansza):
# we1 - 4 liczby, rozmiar planszy i długości potencjalnych skoków
# we2 - opis planszy, litery B, C (białe pole, czarne pole)
rozmiar, *dystanse = (int(l) for l in we1.split(' '))
wynik = 0
# usuwanie duplikatów w dystansach
dystanse = list(set(dystanse))
for poleIdx, pole in enumerate(plansza):
for dystans in dystanse:
if czyMoznaSkoczyc(plansza, poleIdx, dystans):
wynik += 1
return wynik
print (algorytm("7 1 2 3", "BCBCBCB")) # 5
print (algorytm("6 2 2 2", "BBBBBB")) # 4
print (algorytm("5 2 3 4", "BCCCB")) # 2
" Tylko napisz mi proszę gdzie ty robisz to wszystko co jest napisane w komentarzach"
# we1 - 4 liczby, rozmiar planszy i długości potencjalnych skoków
# we2 - opis planszy, litery B, C (białe pole, czarne pole)
To jest opis wejścia (widać na dole), zamiast we2
powinno być chyba plansza.
rozmiar, *dystanse = (int(l) for l in we1.split(' '))
Wypakowuje stringa wejściowego w ten sposób, że w z miennej rozmiar
jest pierwsza cyfra, w liście dystanse
druga.
# usuwanie duplikatów w dystansach
dystanse = list(set(dystanse))
Jak w matematyce, tworząc zbiór usuwamy duplikaty