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