B - Galera

Transkrypt

B - Galera
WEiTI
Kwalifikacje na AMPPZ / CERC
18 października 2014
Zadanie B
Opornik
Biuro Informacji Tajnej (BIT) pracuje nad nowymi sposobami wprowadzania w błąd
ciekawskich, którzy w sposób nieuprawniony próbowaliby zapoznać się z treścią wrażliwych
dokumentów. Jeden z pomysłów, opatrzony kryptonimem "Opornik" (oczywiście pomysł jest
tajny), zakłada wykorzystanie odwracalnego kodowania:
dodatnia_liczba_wymierna ↔ łańcuch_zero-jedynkowy (albo w skrócie: num ↔ bin)
Kodowanie polega na zastosowaniu reprezentacji liczby wymiernej przez szeregoworównoległą drabinkową sieć rezystorową złożoną z oporników o wartościach jednostkowych.
Proste kodowanie tej struktury pozwala uzyskać ciąg zero-jedynkowy. Niech R = p/q oznacza
opór zastępczy pewnej sieci szeregowo równoległej (rys. a), której odpowiada ciąg zerojedynkowy bin(p/q). Sieć możemy rozbudować na dwa sposoby: dodając opornik
jednostkowy szeregowo (rys. b) albo równolegle (rys. c). Konstrukcja każdej sieci rozpoczyna
się od pojedyńczego opornika jednostkowego (rys. d), bin(1/1) = "1". Trzeba opracować
program realizujący to kodowanie w jedną i drugą stronę.
p/q
p/q
p/q
bin(p/q))
(a)
bin(p/q)+"1"
(b)
bin(p/q)+"0"
(c)
"1"
(d)
Wejście
Wejście standardowe zawiera ciąg wierszy - instancji problemu. Każda instancja rozpoczyna
się od 3-znakowego wyróżnika "BIN" albo "NUM" oddzielonego spacją od reszty
specyfikacji, którą stanowi ciąg zero-jedynkowy bin (wyróżnik "BIN") albo liczba wymierna
p/q (wyróżnik "NUM"). Długość ciągu bin nie przekracza 10000, wartości p, q ∈ {1..1000000}
i są względnie pierwsze.
Wyjście
Dla każdej instancji problemu wyprowadzany jest wiersz zawierający specyfikację istancji
odwrotnej: jeżeli instancja wejściowa miała postać BIN bin to wyprowadzany jest
równoważny opis NUM p/q i odwrotnie.
Uwaga: Dane wejściowe są tak dobrane, że podane ograniczenia dla ciągu bin i liczb p, q
obowiązują także na wyjściu.
Przykład
Wejście
NUM 1/1
BIN 1
NUM 2/3
NUM 7/4
BIN 11101
NUM 15/11
Wyjście
BIN 1
NUM 1/1
BIN 110
BIN 11101
NUM 7/4
BIN 1001001
WEiTI
Qualifying competitions to AMPPZ / CERC
18th October, 2014
Task B
Resistor
The Secret Information Office (SIO) is working hard on new ways to mislead the curious
people who would fraudulently try to read the contents of classified documents. One of the
ideas, given the code name "Resistor" (of course, the idea and the code name are secret),
involves using reversible encryption:
positive_rational_number ↔ binary_string (or more compactly: num ↔ bin)
Encoding involves using representation of a given rational number by a ladder-shaped seriesparallel network of unit value resistors. Simple coding scheme of the ladder structure allows
for generating a binary string. Let R = p/q be the equivalent resistance of a series-parallel
network (Fig. a), which corresponds to a zero-one string bin(p/q). The network can be
expanded in two ways: by adding a unit resistor in series (Fig. b) or in parallel (Fig. c).
Growing any such network we have to start with a single unit resistor (Fig. d), for which the
binary code is bin(1/1) = "1". Your task is to develop a program implementing this encoding
scheme both ways.
p/q
p/q
p/q
bin(p/q))
(a)
bin(p/q)+"1"
(b)
bin(p/q)+"0"
(c)
"1"
(d)
Input
Standard input contains a sequence of problem instances, one instance per input line. Each
instance begins with a 3-character marker "BIN" or "NUM" separated by a space from the rest
of the specification, which is a binary sequence bin (for marker "BIN") or rational number p/q
(for marker "NUM"). The length of the bin does not exceed 10000, the values of p, q ∈
{1..1000000} and are relatively prime.
Output
For each problem instance the program generates one output line containing the specification
of the reversed problem instance: if the input was of the form BIN bin then the output line is
the equivalent NUM p/q and vice versa.
Note: The input data are selected so that constraints concerning the sequence bin and numbers
p, q are also satisfied on output.
Example
Input
NUM 1/1
BIN 1
NUM 2/3
NUM 7/4
BIN 11101
NUM 15/11
Output
BIN 1
NUM 1/1
BIN 110
BIN 11101
NUM 7/4
BIN 1001001

Podobne dokumenty