저항 회로의 합성 저항

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

전자 회로에서 흔히 쓰이는 부품 중 하나가 저항(resistor)이다. 저항은 두 개의 단자를 가지며, 전류가 흐르면 그 일부가 열로 바뀌어 전류의 흐름을 "방해"한다. 방해하는 정도는 하나의 양의 실수로 표현되며 이를 저항의 저항값이라 하고, 단위는 옴(Ohm)이다.

두 저항을 직렬(series)로 연결하면 합성 저항은 각 저항값의 합과 같다. 예를 들어 100 옴 저항과 200 옴 저항을 직렬로 연결하면 합성 저항은 300 옴이 된다. 세 개 이상을 직렬로 연결해도 마찬가지로 모든 저항값의 합이 된다.

여러 저항을 병렬(parallel)로 연결하면 합성 저항 $R$은 다음을 만족한다.

$$\frac{1}{R} = \frac{1}{R_1} + \frac{1}{R_2} + \cdots$$

예를 들어 100 옴과 150 옴 저항을 병렬로 연결하면 $\frac{1}{\frac{1}{100} + \frac{1}{150}} = 60$ 옴이 되고, 100 옴, 150 옴, 300 옴 저항을 병렬로 연결하면 $\frac{1}{\frac{1}{100} + \frac{1}{150} + \frac{1}{300}} = 50$ 옴이 된다.

저항들과 그 연결 관계에 대한 설명이 하나 이상 주어진다. 각 연결점(저항의 단자)은 서로 다른 양의 정수 라벨로 구분된다. 각 저항은 두 단자의 라벨과 저항값(실수)으로 표현된다. 예를 들어

1 2 100

은 점 1과 점 2 사이에 100 옴 저항이 연결되어 있음을 뜻한다. 직렬로 연결된 두 저항은 다음과 같이 표현할 수 있고,

1 2 100
2 3 200

(점 1과 2 사이에 100 옴, 점 2와 3 사이에 200 옴), 병렬로 연결된 두 저항은 다음과 같이 표현할 수 있다.

1 2 100
1 2 150

연결 관계와 각 저항값이 주어질 때, 위 규칙을 이용하여 지정된 두 점 사이의 합성 저항을 구하여라. 이 문제의 모든 회로는 직렬·병렬 규칙을 반복 적용하여 풀 수 있다.

입력

입력은 하나 이상의 케이스로 이루어진다. 각 케이스는 세 정수 $N$, $A$, $B$가 적힌 줄로 시작한다. $A$와 $B$는 합성 저항을 구할 두 점의 라벨이고, $N$은 저항의 개수로 $N \le 30$이다. 마지막 케이스 다음 줄에는 0 0 0이 주어지며 이 줄은 처리하지 않는다. N A B 줄 다음에는 $N$개의 줄이 이어지고, 각 줄에는 한 저항이 연결된 두 단자의 라벨과 그 저항값(실수)이 주어진다.

출력

각 케이스마다 케이스 번호(1부터 순서대로 매긴다)와 소수점 아래 둘째 자리까지 반올림한 합성 저항을 다음 형식으로 한 줄에 출력한다.

Case k: R Ohms

참고

  1. 어떤 저항은 주어진 두 점 사이의 합성 저항에 기여하지 않을 수 있다. 예를 들어 마지막 예제 케이스(저항이 6개인 회로)에서 점 1과 2 사이의 저항에는 전류가 흐르지 않아 사용되지 않는다. 저항은 그것을 통해 전류가 흐를 수 있을 때에만 합성 저항에 기여한다.
  2. 어떤 저항도 한 점을 자기 자신과 연결하지 않는다. 즉, 한 저항의 두 단자 라벨은 항상 서로 다르다.