차익 거래
시간 제한1초메모리 제한128 MB
통화와 환율이 주어질 때, 어떤 통화를 한 단위 바꾸는 순환 거래로 그 통화를 1단위 초과로 만들 수 있는지 판정한다.
문제
차익 거래(arbitrage)는 환율의 차이를 이용해 한 통화의 1단위를 같은 통화의 1단위보다 많은 양으로 바꾸는 것을 말한다. 예를 들어 1 미국 달러로 0.5 영국 파운드를 살 수 있고, 1 영국 파운드로 10.0 프랑스 프랑을 살 수 있으며, 1 프랑스 프랑으로 0.21 미국 달러를 살 수 있다고 하자. 그러면 영리한 트레이더는 1 미국 달러로 시작해 통화를 차례로 교환하여 미국 달러를 얻을 수 있고, 5 퍼센트의 이익을 남긴다.
통화 환율의 목록을 입력받아 이러한 차익 거래가 가능한지 판별하는 프로그램을 작성하라.
입력
입력은 하나 이상의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 서로 다른 통화의 수를 나타내는 정수 ()이 주어진다. 이어지는 개의 줄에는 각각 통화의 이름이 하나씩 주어지며, 이름에는 공백이 포함되지 않는다. 그 다음 줄에는 뒤따르는 환율 표의 길이를 나타내는 정수 이 주어진다. 이어지는 개의 줄에는 각각 출발 통화의 이름 , 에서 로의 환율을 나타내는 실수 , 도착 통화의 이름 가 주어진다. 표에 나타나지 않는 교환은 불가능하다.
테스트 케이스는 빈 줄로 구분된다. 입력은 의 값이 인 줄로 끝난다.
출력
각 테스트 케이스마다 한 줄을 출력한다. 차익 거래가 가능하면 "Case : Yes", 불가능하면 "Case : No" 형식으로 출력하며, 여기서 는 1부터 시작하는 테스트 케이스 번호이다.