První série nultého ročníku KSP

Tyto úlohy pocházejí z desetileté ročenky KSP. Jejich řešení bohužel nemáme v elektronické podobě, takže na ně budete muset přijít sami.

Zadání úloh


0-1-1 Rotace pole


Je dáno pole XN prvcích. Sestavte program, který pro dané celé číslo k takové, že |k|<N, posune prvky pole „do kruhu“. Pro kladné k to znamená, že prvek X1 se posune na místo Xk+1, X2 na Xk+2, atd. Např. pro N=11, k=4 vypadá posun následovně:

pole před rotací: 1 2 3 4 5 6 7 8 9 10 11
pole po rotaci: 8 9 10 11 1 2 3 4 5 6 7

Pro k=0 se nevykoná nic, pro k<0 jde o rotaci opačným směrem.


0-1-2 Podíl čísel


Sestavte program, který pro zadaná celá čísla A, B vypočte jejich podíl jako reálné číslo na takový počet desetinných míst, aby dělení skončilo, jakmile nastane jedna z následujících možností:

  1. další desetinná místa obsahují samé nuly
  2. v desetinné části se vyskytne perioda (v tom případě určete také délku periody).

0-1-3 Permutace


Je dáno celé kladné číslo N. Nechť A, B jsou permutace čísel 1, 2, …, N. Říkáme, že permutace A je před permutací B, jestliže existuje takové celé kladné číslo i, že pro všechna celá kladná j menší než i platí A(j)=B(j) a zároveň A(i)<B(i). Tuto relaci mezi permutacemi nazýváme lexikografické uspořádání. Např. pro N=5 platí:

(2 1 3 5 4) je před (4 1 2 3 5)
(3 1 2 4 5) je před (3 1 4 5 2).

Všechny permutace lexikograficky uspořádáme a očíslujeme čísly od 1 do N!. Např. pro N=3 má permutace (1 2 3) číslo 1, permutace (2 3 1) má číslo 4, permutace (3 2 1) má číslo 6 apod. Sestavte program, který pro zadané N přečte ze vstupu jedno celé kladné číslo a vypíše permutaci s tímto pořadovým číslem.


0-1-4 Rozdělení čísel


Sestavte program, který pro zadané celé kladné číslo n rozdělí čísla 1, 2, …, n2 do n skupin po n prvcích tak, aby všechny skupiny měly stejný součet.