Wpis z mikrobloga

Mircy z programowanie i szczególnie z C++. ( ͡° ͜ʖ ͡°)
Mam poniższy problem do ogarnięcia i powiem szczerze, że to mnie przerasta jako Mirka, który nie bardzo into programowanie, a w szczególności C++.
Czy komuś z Was się nudzi i nie zechciałby pomóc w okiełznaniu tego czegoś? (,)

Mając daną permutację liczb wypisz cykl zawierający zero rozpoczynając od zera.

Na wejściu dana jest liczba n < 1000 (ręcznie do wprowadzenia: więc cin >> n;), a następnie danych jest n liczb ai takich, że ai oznacza liczbę na i-tym polu.

Na wyjściu powinny znaleźć się liczby b1 .. bk oznaczające kolejne elementy cyklu.

#programowanie #cpp #cplusplus
  • 5
Permutacje masz dobrze opisane na wikipedii:
https://pl.wikipedia.org/wiki/Permutacja

Z tego co rozumiem to musisz wczytać permutacje następnie podzielić je na cykle, a na końcu wypisać te cykle.

Tylko zastanawia mnie, że jest to przedstawione jako jeden cykl b1...bk, przecież cykle mogą być rozłączne, chyba że chodzi o złożenie ich.
@tomono: To jest permutacja czyli zawiera tylko cykle, a tylko jeden z nich będzie przechodził przez zero.
@super_tux:
Wczytujesz wartości do wektora. Wypisujesz kolejne wartości spod indeksu który jest wartością poprzedniego elementu, dopóki nie trafisz na element który już wypisałeś czyli zero.

@rotflolmaomgeez: tylko nie wiadomo o jakie zero chodzi, o indeks elementu w którym jest index zero? Czy element pod zerowym indeksem :-D
@lionbest To powinien być ten sam cykl. Jeśli liczby mogą się powtarzać, to zadanie przestaje trochę mieć sens, możliwe że w ogóle nie będą częścią cyklu.

Edit: a nie, nie mogą się powtarzać bo jest ich n. Wszystko w porządku.
@rotflolmaomgeez: Nie mogą bo to nie będzie permutacja, pozatym ai < n .
No i pierwszy element zawsze będzie elementem tego cyklu bo wskazuje na niego 0 które możemy sobie po prostu wypisać nie wczytując skoro mamy od niego zacząć.