환전
시간 제한1초메모리 제한128 MB
5x5 환율 표가 주어지고 모든 환전이 소수 둘째 자리에서 반올림될 때, 각 여행의 환전 과정을 시뮬레이션해 마지막 달러 금액을 소수 둘째 자리까지 출력한다.
문제
아이작(Isaac)이 해외로, 예를 들어 프랑스로 여행을 떠나면 가지고 있던 미국 달러를 그 나라의 화폐(프랑스 프랑)로 환전한다. 환율은 실수이며, 달러 금액에 환율을 곱하면 프랑 금액이 된다. 예를 들어 미국 달러에서 프랑스 프랑으로의 환율이 이면 달러는 프랑이 된다.
화폐는 분의 단위까지만 가질 수 있으므로, 환전된 금액은 항상 가장 가까운 분의 로 반올림한다. 이때 는 항상 로 올림한다. 서로 다른 두 화폐 사이의 모든 환전은 이렇게 반올림된다.
어떤 여행에서는 여러 나라를 거치며, 한 외국의 화폐를 곧바로 다음 나라의 화폐로 환전하기도 한다. 마지막으로 집에 돌아오면 남은 돈을 다시 미국 달러로 환전한다. 아이작은 쓰지 않은 돈이 이러한 환율 때문에 얼마나 손해(또는 이득)를 보는지 궁금하다. 환율과 여행 경로가 주어질 때, 각 여행이 끝난 뒤 아이작이 가지게 되는 미국 달러 금액을 구하여라. 모든 여행은 미국 달러로 시작해 미국 달러로 끝난다.
입력
나라는 번부터 번까지 개이며, 번 나라가 미국이다.
첫 줄은 환율 행렬을 나타낸다. 번째 줄에는 개의 실수가 있으며, 그중 번째 수는 번 나라 화폐에서 번 나라 화폐로의 환율이다. 같은 나라로의 환율은 항상 이다.
그 다음 줄들은 각각 하나의 여행을 나타내며 다음 형식이다.
n c1 c2 … cn m
여기서 이고, 은 각각 부터 까지의 정수로, 아이작이 방문하는 나라를 순서대로 나타낸다. 따라서 여행 경로는 이다. 실수 은 여행을 시작할 때 가진 미국 달러 금액이다.
첫 번째 수가 인 줄은 입력의 끝을 의미하며, 그 줄에는 더 이상 다른 수가 없다.
출력
각 여행마다 한 줄씩, 아이작이 집에 돌아왔을 때 가진 미국 달러 금액을 가장 가까운 센트로 반올림하여 출력한다. 소수점 아래에 센트를 정확히 두 자리로 표시하는 일반적인 방식으로 출력한다. 금액이 달러보다 작으면 달러 자리에 을 넣어 출력한다(예: 0.99).