Logo
(追記) (追記ここまで)

32351번 - 리듬게임 스페셜 저지

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB30420016967.331%

문제

레이는 리듬게임을 개발 중이다. 리듬게임에는 다양한 곡들이 존재하고, 레이는 곡을 선택하는 화면에 특정 곡의 총 플레이 시간을 미리 보여주는 기능을 추가하려고 한다. 곡이 어떻게 구성되었는지 알기 위해서는 마디, , BPM(Beats Per Minute), 변속에 대해서 알아야 한다.

  • 마디는 곡을 구성하는 가장 기본적인 곡의 길이 단위이다. 한 곡은 여러 개의 마디로 이루어져 있다.
  • 은 마디 내부의 박자를 나타내는 단위이다. 레이의 리듬게임에 사용되는 곡은 모두가 $\frac{4}{4}$박자이기 때문에, 한 마디는 4ドル$개의 박으로 구성된다.
  • BPM은 곡 진행속도의 단위이며, 1ドル$분동안 몇 개의 박이 진행되는지를 나타낸다. 곡의 BPM이 $b$이면 1ドル$분동안 $b$개의 박이 균일한 속도로 진행되는 것을 의미한다.
  • BPM은 곡 중간에 변할 수 있으며, 이를 변속이라고 부른다. 각 마디가 시작 될 때 BPM이 바뀔 수 있다. 이렇게 바뀐 BPM은 다음 변속이 오거나, 곡이 끝날 때까지 유지된다.

어떤 곡의 총 마디 수, 초기 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ドル$자리 이상 출력하는 것을 권장한다. 출력 방법은 힌트 문단을 참고하여라.

제한

예제 입력 1

10 120.0 2
4 180.0
7 60.0

예제 출력 1

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ドル$자리까지 출력하는 방법은 다음과 같다. 이외의 언어는 각 언어의 레퍼런스 페이지를 참고하여라.

  • C: printf("%.12f\n", ans);
  • C++: std::cout << std::fixed << std::setprecision(12) << ans << std::endl;
  • C#: Console.WriteLine(String.Format("{0:F12}", ans));
  • Java: System.out.printf("%.12f\n", ans);
  • Python: print(f'{ans:.12f}')

출처

University > KAIST > KAIST HAJE 프로그래밍 대회 B번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /