Gra w skakanie

0

WItam Wszystkich!

Mam problem z tym jednym zadaniem. Proszę pomóżcie mi.

0

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
0

" 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

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0