Kdy a kde:
Za co je zapocet:
function f(x:integer):integer;
Posloupnost 0, f(0), f(f(0)), f(f(f(0))), ... je vzdy periodicka (pripadne s predperiodou). Napiste program, ktery urci periodu teto posloupnosti.
Program by mel byt rozumne rychly. Presneji, je-li n delka predperiody a m delka periody posloupnosti, mel by volat funkci f nanejvys c(m+n) krat, kde c je nejaka konstanta.
Mate dano prirozene cislo N, spocitejte dolni celou cast log2 N v case lepsim nez O(log2 N).
Kazde permutaci na N prvcich muzeme priradit cislo timto zpusobem: Vezmeme si vsech N! permutaci na N a seradime je lexikograficky (tj. nejprve je seradime podle hodnoty prirazene 1, ty co maji tuto hodnotu stejnou podle hodnoty prirazene 2, atd.). k-ta permutace v tomto poradi ma pak cislo k.
Napiste program, ktery pro zadanou permutaci urci jeji cislo (rozumne rychle -- tj. postup vygeneruj vsechny permutace a najdi tu zadanou neni prijatelny).
V organizaci je n zamestnancu a m sefu. Kazdy zamestnanec i sef muze mit nekolik nadrizenych sefu (ale nevznikaji cykly -- tj. nestane se, ze by nekdo byl svym "transitivnim" zamestnancem). Plat zamestnancu jsou dany pevne. Plat sefa je urcen jako maximum z platu jeho podrizenych + 1. Napiste program, ktery urci, kolik tato organizace utrati na platech.
Format vstupu muze byt napriklad tento (zamestnanci jsou cislovani 1,2,..., n,
sefove n + 1, ..., n + m):
4 3 1 2 3 4 1 5 2 5 7 1 7 2 5 7 1 6 0 1 6To znamena: jsou 4 zamestnanci a 3 sefove. Platy zamestnancu jsou 1,2,3 a 4. Prvni zamestnanec ma prave jednoho sefa -- cislo 5. Druhy zamestnanec ma 2 sefy -- 5 a 7. Atd.
Spravny vystup pro tento vstup je 26.
Obsah cviceni: