아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

디지털 속도계

면접 대비

시간 제한1초메모리 제한1024 MB

요약
센서가 보고한 속도 값의 흐름에 히스테리시스 임계값을 적용해, 상승 또는 하강 임계값을 넘을 때만 정수 표시가 바뀌도록 만든다.
난이도

보통10점 중 4점

유형
구현, 시뮬레이션, 수학, 배열
정답자
아직 제출이 없습니다

문제

디지털 속도계는 차량의 속도를 정수 마일 단위로 표시한다. 크루즈 컨트롤을 사용할 때처럼 감지된 속도가 두 정수 값 사이를 오가는 경우가 있다. 인접한 두 정수 사이에서 하나의 임계값으로 반올림하면 디스플레이가 두 정수 사이를 빠르게 오가며 운전자의 주의를 흐트러뜨리기 쉽다.

여러분은 상승 임계값과 하강 임계값(t_rt\_r과 t_ft\_f, t_f<t_rt\_f < t\_r)을 따로 사용하는 표시 완화 기법을 구현해야 한다. 다음 규칙에 대한 그림 1은 예제 입력을 그래프로 나타낸 것이다.

그림 1: 예제 입력의 센서 판독값, t_f=0.25t\_f=0.25, t_r=0.75t\_r=0.75.

감지된 각 속도 ss는 인접한 두 정수 ii와 jj 사이에 있으며, i≤s<ji \le s < j, j=i+1j = i + 1이다. 감지된 속도 ss를 정수로 표시할 때:

  • ss가 ii와 i+t_fi+t\_f 사이에 있으면 ss는 ii로 표시된다.
  • ss가 i+t_ri+t\_r과 jj 사이에 있으면 ss는 jj로 표시된다.
  • ss가 i+t_fi+t\_f와 i+t_ri+t\_r 사이에 있으면, 구간 \[i+t_f,i+t_r]\[i+t\_f, i+t\_r] 밖에 있는 가장 최근의 ss 값이 i+t_ri+t\_r보다 작을 때 ss는 ii로 표시되고, 구간 \[i+t_f,i+t_r]\[i+t\_f, i+t\_r] 밖에 있는 가장 최근의 ss 값이 i+t_ri+t\_r보다 클 때 ss는 jj로 표시된다.
  • 0<s<10 < s < 1인 감지 속도는 11로 표시되어야 한다. 아무리 작더라도 0이 아닌 속도는 차량이 움직이고 있음을 나타내기 위해 0이 아닌 값으로 표시되어야 하기 때문이다.

입력

입력의 첫째 줄에는 하강 임계값 t_ft\_f가 주어진다. 둘째 줄에는 상승 임계값 t_rt\_r이 주어진다. 속도 센서는 ss를 0.10.1 mph 단위로 보고한다. 임계값은 항상 속도 단위 사이의 중간값으로 설정된다. 파일 끝까지 이어지는 나머지 줄에는 연속된 소수 속도 ss가 마일 단위로 한 줄에 하나씩 주어진다. 입력의 셋째 줄, 즉 첫 번째 측정 속도는 항상 00이다. 입력으로 주어지는 관측 속도 ss는 최대 10001000개이다. 0<t_f,t_r<1;    t_f<t_r;    0≤s≤1200 < t\_f,t\_r < 1; \ \ \ \ t\_f < t\_r; \ \ \ \ 0 \le s \le 120

출력

t_ft\_f와 t_rt\_r에 맞게 정수 값으로 완화된 속도 목록을 한 줄에 하나씩 출력한다.

힌트

입력출력설명
0.25t_ft\_f의 값.
0.75t_rt\_r의 값.
00최초 입력.
2.0200보다 큰 입력, 임계값 2.252.25 미만.
5.752.02.0보다 큰 입력, 임계 구간 내.
5.862.02.0보다 큰 입력, 상한 임계값 5.755.75 초과.
5.765.85.8보다 작은 입력, 임계 구간 내.
5.255.85.8보다 작은 입력, 임계값 5.255.25 미만.
5.755.25.2보다 큰 입력, 임계 구간 내.
0.8100보다 크고 11보다 작은 입력.
0.2100보다 크고 11보다 작은 입력.

예제1

  1. 예제 1

    입력
    0.25
    0.75
    0
    2.0
    5.7
    5.8
    5.7
    5.2
    5.7
    0.8
    0.2
    
    예상 출력
    0
    2
    5
    6
    6
    5
    5
    1
    1