[BOJ 1483] 저항

View as PDF

Submit solution

Points: 3
Time limit: 2.0s
Memory limit: 128M

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text

저항 R1, R2, R3 ,... Rn을 직렬로 연결 하면, (R1+R2+R3+...+Rn)이 되고, 병렬로 연결 하면, 1/((1/R1)+(1/R2)+(1/R3)+...+(1/Rn))이 된다.</p>

두 정수 a와 b가 주어진다. 크기가 1과 2인 저항을 매우 많이 가지고 있을때, 저항을 몇 개를 연결해야 a/b가 되는지 출력하는 프로그램을 작성하시오.

입력 형식

첫째 줄에 a와 b가 주어진다. a와 b는 50,000보다 작거나 같은 자연수이다.

출력 형식

첫째 줄에 필요한 저항의 최소 개수를 출력한다. 만약 필요한 저항의 수가 16개보다 크다면 -1을 출력한다.

예제 입력 1

6 5

예제 출력 1

3

예제 입력 2

1 1

예제 출력 2

1

예제 입력 3

2 3

예제 출력 3

2

예제 입력 4

42 47

예제 출력 4

7

예제 입력 5

1 20

예제 출력 5

-1

예제 입력 6

756 874

예제 출력 6

10

힌트

예제 1의 경우 1과 2를 직렬 연결한 것을 2와 병렬 연결 하면 된다.


Comments

There are no comments at the moment.