| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 1024 MB | 304 | 200 | 169 | 67.331% |
레이는 리듬게임을 개발 중이다. 리듬게임에는 다양한 곡들이 존재하고, 레이는 곡을 선택하는 화면에 특정 곡의 총 플레이 시간을 미리 보여주는 기능을 추가하려고 한다. 곡이 어떻게 구성되었는지 알기 위해서는 마디, 박, BPM(Beats Per Minute), 변속에 대해서 알아야 한다.
어떤 곡의 총 마디 수, 초기 BPM과 변속 정보가 주어졌을 때, 해당 곡의 총 플레이 시간을 구해보자.
첫 번째 줄에 플레이 시간을 계산할 곡의 마디 수 $N,ドル 곡의 초기 BPM $S_0$와 곡의 변속 횟수 $K$가 공백으로 구분되어 주어진다. $(0\leq K<N\leq 10^{5};$ 1ドル\leq S_0<1,円 000)$
다음 $K$개의 줄의 $i$번째 줄에는 $i$번째 변속이 일어나는 마디 $M_i,ドル 변속으로 인해 변한 BPM인 $S_i$가 주어진다. $(1<M_i\leq N;$ 1ドル\leq S_i<1,円 000)$
$N,K,M_1,M_2,\cdots ,M_K$는 모두 정수이며, $S_i$는 소숫점 최대 2자리까지 주어지는 양의 실수이다.
입력의 모든 변속은 마디 순서대로 주어지며, 한 마디에서 두 번 이상 변속이 일어나지 않는다. 또한, 첫 번째 마디에서는 변속이 일어나지 않는다. 즉, 1ドル < M_1<M_2<\cdots <M_k$이다.
첫 번째 줄에 곡의 총 플레이 시간을 초 단위로 출력한다.
정답과 상대오차 또는 절대오차가 10ドル^{-6}$ 이하라면 정답으로 처리된다.
정확한 채점을 위해, 정답을 고정 소숫점으로 소숫점 아래 12ドル$자리 이상 출력하는 것을 권장한다. 출력 방법은 힌트 문단을 참고하여라.
10 120.0 2 4 180.0 7 60.0
26.000000000000
1ドル$마디부터 3ドル$마디까지는 3ドル$개의 마디를 120ドル.0$의 BPM으로 재생하므로 6ドル$초가 걸린다.
4ドル$마디부터 6ドル$마디까지는 3ドル$개의 마디를 180ドル.0$의 BPM으로 재생하므로 4ドル$초가 걸린다.
7ドル$마디부터 10ドル$마디까지는 4ドル$개의 마디를 60ドル.0$의 BPM으로 재생하므로 16ドル$초가 걸린다.
따라서 총 플레이 시간은 26ドル$초이다.
언어별로 정답인 ans를 소숫점 아래 12ドル$자리까지 출력하는 방법은 다음과 같다. 이외의 언어는 각 언어의 레퍼런스 페이지를 참고하여라.
printf("%.12f\n", ans);std::cout << std::fixed << std::setprecision(12) << ans << std::endl;Console.WriteLine(String.Format("{0:F12}", ans));System.out.printf("%.12f\n", ans);print(f'{ans:.12f}')University > KAIST > KAIST HAJE 프로그래밍 대회 B번