Prihlásenie Registrácia  

B - Funkcia

Časový limit: 10000000 steps, Pamäťový limit: 10000000 chars

Programovací jazyk: Turing Machine

Počet bodov: 6

[ Pošli riešenie ] [ Tvoje riešenia ] [ Správne riešenia ] [ Vzorové riešenie ]

Úloha

Na páske je uložené jedno unárne kódované prirodzené číslo N. Tvojou úlohou je vypočítať funkciu (N + 1)2.

Vstup

Páska je ohraničená z ľava. Počiatočný stav je s0. Hlava je nastavená na prvý znak pásky, ktorý je vždy nula. Naľavo od hlavy už nie je páska a napravo je znak jedna. Povolené páskové písmená sú len 0 a 1. Na páske sa nachádza práve jedno číslo N v unárnom kódovaní.

Výstup

Na páske treba ponechať počet jednotiek rovný výsledku funkcie (N + 1)2. Samotné rozloženie jednotiek na páske nie je podstatné, dôležiťý je len ich počet. Konečný stav a pozícia hlavy po skončení vykonávania algoritmu nie je podstatná, no nikdy sa nesmie dostať mimo pásku.

Priklad 1

Vstup:

-t1 -oc
01
0111

Výstup:

9

Vysvetlenie:

Vstupné číslo je 2. Výstup bude teda (2 + 1)2 = 32 = 9.

Priklad 2

Vstup:

-t1 -oc
01
01111

Výstup:

16

Vysvetlenie:

Vstupné číslo je 3. Výstup bude teda (3 + 1)2 = 42 = 16.

Poznámka:

Vo vstupe sú uvedené parametre použité na testovanie pomocou programu palma_ts, môžete ich umiestniť do vstupného súboru.