설정
당신이 제공하는 가정 N 1, 퓨즈 ≤ N ≤ 5 미터가 긴 각각, 각 퓨즈의 연관된 연소율 갖는 경우 N의 당 m D의 시간.
퓨즈는 한쪽 또는 양쪽 끝에서 켜진 후 퓨즈가 완전히 소비 될 때까지 필요한만큼 여러 번 한쪽 끝 또는 양쪽 끝에서 꺼 지거나, 다시 켜거나 꺼질 수 있습니다. 퓨즈를 즉시 켜고 끌 수 있으며, 퓨즈가 완전히 소비 된 (즉 번인) 순간을 정확히 관찰 할 수 있습니다.
퓨즈 는 절단 할 수 없으며 끝을 제외하고 어디에서나 불을 켤 수 없습니다 .
이러한 설정은 두 개의 퓨즈 조명 / 소비 이벤트 사이의 시간을 측정하여 무한정 정확한 타이밍 시스템을 허용합니다. 예를 들어, 시간당 1 미터의 연소율을 가진 두 개의 퓨즈가 제공된 경우 정확히 45 분 (3/4 시간)을 측정 할 수 있습니다.
- 동시에 : 양쪽 끝에 첫 번째 퓨즈 조명, 한쪽 끝에 두 번째 퓨즈 조명, 시간 간격의 시작 표시
- 첫 번째 퓨즈가 소비되는 순간에 두 번째 퓨즈의 두 번째 끝 조명 (30 분 후)
- 두 번째 퓨즈가 소비되는 순간 시간 간격의 끝 표시 (15 분 후)
도전
소수의 시간 t 와 n 개의 퓨즈 의 정확한 연소율을 나타내는 n 개의 분수가 주어지면, 퓨즈의 체계적인 연소를 통해 t 시간을 정확하게 측정 할 수 있다면 진실한 값을 출력 / 반환하는 프로그램 또는 기능을 작성하십시오 . 그렇지 않으면 허위 가치.
프로그램에 대한 입력은 다음 중 하나 일 수 있습니다.
- 양식의 명령 행 인수
TN/TD N1/D1 N2/D2 N3/D3 ...
TN/TD N1/D1 N2/D2 N3/D3 ...
읽stdin
거나 동등한 형식의 문자열TN/TD N1/D1 N2/D2 N3/D3 ...
함수 인수 로 전달 된 형식의 문자열["TN/TD", "N1/D1", "N2/D2", "N3/D3", ...]
함수 인수로 전달 된 문자열 배열
모든 경우에 t = TN
/ TD
, 여기서 TN
, TD
∈ [1,10000].
마찬가지로, 모든 경우 : 퓨즈 연소율 난 = N을 I / D I = N<i>
/ D<i>
여기서 N<i>
, D<i>
∈ [1,10] ∀ I .
항상 1 ~ 5 개의 퓨즈 (포함)가 있고 모든 입력이 유효하고 범위 내에 있다고 가정 할 수 있습니다. 또한 모든 입력 비율이 가장 낮은 용어로 주어진다고 가정 할 수 있습니다.
이 문제에 대해 소수 구성 요소와 함께 부동 소수점 숫자를 사용할 수 없습니다. 즉, 응용 프로그램의 어느 곳에서나 부동 소수점 숫자를 사용하면 소수 성분이 0이 아닌 정수 값만 사용할 수 있습니다.
채점
이것은 코드 골프 챌린지이므로 바이트 단위의 가장 짧은 준수 제출이 승리합니다.
입력 / 출력 예
input: 29/6 3/2 2/3 3/5 3/7 7/5
output: true
One solution:
- light both ends of fuse 1, mark start of interval
- on fuse 1 consumption: light both ends of fuse 2, light one end of fuse 5
- on fuse 5 consumption: extinguish one end of fuse 2, light both ends of fuse 3,
light both ends of fuse 4
- on fuse 2 consumption: extinguish one end of fuse 3, extinguish both ends of
fuse 4
- on fuse 3 consumption: relight one end of fuse 4
- on consumption of fuse 4: mark end of interval (29/6 hours)
input: 2/1 3/1 5/1 7/1
output: false
input: 5/1 6/1 1/6 9/1 1/9
output: true
One solution:
- light fuse 1 at one end, light fuse 2 at both ends, light fuse 4 at both ends
- on fuse 1 consumption: extinguish one end of fuse 2, mark start of interval
- on fuse 4 consumption: relight one end of fuse 2
- on fuse 2 consumption: mark end of interval (5 hours)
행복한 융합! :)