파일 업로드

달리기 경주

profile
실행 시간 제한메모리 제한
5 초512 MB
📃 해결할 문제

엄복동은 길이가 KK (1K1091 \le K \le 10^9) 미터인 경주를 하고 있습니다. 그는 초당 0 미터의 속도로 달리기를 시작합니다. 주어진 초 동안, 그는 속도를 초당 1 미터 증가시키거나, 변함없이 유지하거나, 1 미터 감소시킬 수 있습니다. 

예를 들어, 첫 번째 초에, 그는 속도를 초당 1미터로 증가시켜 1미터를 달리거나, 0미터로 유지하면서 0미터를 달릴 수 있습니다. 

엄복동의 속도는 절대로 0 아래로 떨어지지 않습니다.

엄복동은 항상 결승선을 향해 달릴 것이고, 그는 정수 개의 초(정수 지점에서 목표선을 넘거나 그 지점에서 끝나는) 후에 끝내고 싶습니다. 

더욱이, 그는 결승선에서는 너무 빨리 달리지 않기를 원합니다: 엄복동이 KK 미터를 달려서 끝낼 때, 그는 최근에 달리던 속도가 초당 XX (1X1051 \leq X \leq 10^5) 미터를 초과하지 않길 원합니다. 엄복동은 NN (1N10001 \leq N \leq 1000)가지 다른 XX 값에 대해 얼마나 빨리 경주를 끝낼 수 있는지 알고 싶습니다.

💻 입력

첫 번째 줄에는 두 정수 KKNN이 들어 있습니다.

다음 NN 줄 각각은 하나의 정수 XX를 포함합니다.

🖨️ 출력

NN 줄을 출력하세요. 각 줄에는 엄복동이 KK 미터를 달려 결승선을 초당 XX 이하의 속도로 도착하기 위해 필요한 최소 시간의 정수를 적어주세요.

 


💻 예제 입력 1
10 5
1
2
3
4
5
🖨️ 예제 출력 1
6
5
5
4
4

💡 힌트

X=1X = 1일 때, 최적의 해는 다음과 같습니다:

  1. 속도를 1 m/s로 높여 1미터를 이동합니다
  2. 속도를 2 m/s로 높여 총 3미터를 이동합니다
  3. 속도는 2 m/s를 유지하고 총 5미터를 이동합니다
  4. 속도는 2 m/s를 유지하고 총 7미터를 이동합니다
  5. 속도는 2 m/s를 유지하고 총 9미터를 이동합니다
  6. 속도를 1 m/s로 줄여 총 10미터를 이동합니다

X=3X = 3일 때, 최적의 해는 다음과 같습니다:

  1. 속도를 1 m/s로 높여 1미터를 이동합니다
  2. 속도를 2 m/s로 높여 총 3미터를 이동합니다
  3. 속도를 3 m/s로 높여 총 6미터를 이동합니다
  4. 속도를 3 m/s로 유지하고 총 9미터를 이동합니다
  5. 속도를 3 m/s로 유지하고 총 12미터를 이동합니다

다음은 X=3X = 3일 때 불가능한 경우입니다:

  1. 속도를 1 m/s로 높여 1미터를 이동합니다
  2. 속도를 2 m/s로 높여 총 3미터를 이동합니다
  3. 속도를 3 m/s로 높여 총 6미터를 이동합니다
  4. 속도를 4 m/s로 높여 총 10미터를 이동합니다

이는 엄복동이 10미터를 달리는 순간에 그의 속도가 4 m/s이기 때문입니다.


출처: USACO 2020 January Contest, Bronze Problem 3. Race