원문보기(http://online-judge.uva.es/p/v6/644.html) <- DeadLink

About ImmediateDecodability

기호의 코드가 다른 기호의 앞부분에 존재하지 않으면, 기호의 집합을 암호화하는 것은 직접 해독 가능하다. 모든 코드는 이진 코드이고, 한 코드 집합에서는 동일한 코드가 존재하지 않으며, 각 코드는 적어도 1개 이상의 비트와 10개 이하의 코드를 갖는다. 각 집합은 적어도 2개 이상, 8개 이하의 코드를 갖는다.

기호 {A,B,C,D}를 갖는 알파벳이 있다고 가정하자.

다음 코드는 직접 해독 가능성이 존재한다.
A:01 B:10 C:0010 D:0000
그러나 다음 코드는 그렇지 않다.
A:01 B:10 C:010 D:0000 (A가 C의 앞부분에 존재한다)

Input

파일에서 연속된 데이터를 그룹 형태로 입력을 받아들인다. 그룹의 각 데이터는 기호용 이진 코드를 나타내는 0과 1의 집합으로 구성된다. 각 그룹은 단일 숫자 9로 구분된다. 구분 숫자인 9는 그룹에 속하지 않는다.

각 그룹은 다른 그룹과 따로 처리해야 한다. 한 그룹의 코드가 다른 그룹의 코드와는 연관해서 처리하지 않는다. 즉, 각 그룹은 따로따로 처리해야 한다.

Output

각 그룹에서 프로그램은 그룹의 코드들이 직접 해독 가능성이 있는지를 결정하고, 주어진 그룹 번호와 그룹의 직접 해독 가능성 여부를 한 줄씩 출력한다.

입력 예제는 위의 예로 설명되었다.

Sample Input

~cpp 
01
10
0010
0000
9
01
10
010
0000
9

Sample Output

~cpp 
Set 1 is immediately decodable
Set 2 is not immediately decodable

풀이

Retrieved from http://wiki.zeropage.org/wiki.php/ImmediateDecodability
last modified 2021-02-07 05:23:27