만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

실험실 보고서

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

요약
기준표와 환자별 검사 결과가 주어질 때, 각 결과에 상태 플래그를 붙인 고정 너비 검사 보고서를 출력합니다.
난이도

쉬움10점 중 3점

유형
구현, 문자열, 구간
정답자
아직 제출이 없습니다

문제

당신은 의료 검사실에서 사용할 소프트웨어를 작성하게 되었습니다. 이 소프트웨어의 일부는 실시된 의료 검사의 보고서를 생성합니다. 의료 검사는 환자에게서 채취한 검체(혈액, 소변 등)에 대해 수행하는 일련의 측정으로 이루어집니다. 각 측정에는 이름, 단위, 결과값이 있습니다. 예를 들어 혈액 검체의 Cholesterol(콜레스테롤)은 180 mg/dl일 수 있습니다. 각 측정에는 참조표(reference table)도 붙어 있습니다. 참조표는 측정 결과에 따라 환자의 상태 flag를 정하는 규칙의 집합입니다. 예를 들어 Triglycerides의 결과가 [10, 190] 범위에 있으면 normal로 분류합니다. 결과가 이 범위보다 작으면 low, 크면 high로 표시합니다.

모든 측정의 참조표와 여러 환자의 결과가 주어질 때, 환자별 검사 보고서를 생성하시오.

입력

텍스트는 공백, 구두점, 영문자와 숫자를 포함한 임의의 출력 가능한 ASCII 문자로 이루어진 비어 있지 않은 문자열입니다. 줄바꿈 문자는 포함하지 않습니다. 텍스트는 공백 문자로 시작하거나 끝나지 않습니다. 입력에 나오는 모든 실수는 최대 7글자의 소수 표기이며, 절댓값은 10710^7을 넘지 않습니다.

입력은 여러 개(2개 이상 100개 이하)의 구역으로 이루어집니다. 각 구역은 = 문자 80개로만 이루어진 줄로 끝납니다.

첫 번째 구역은 참조표를 설명합니다. 참조표는 1개 이상 100개 이하입니다. 인접한 두 참조표는 - 문자 75개로만 이루어진 줄로 구분합니다. 참조표의 첫 줄은 측정 이름이며, 최대 25글자입니다. 측정 이름은 모든 참조표에서 서로 달라야 합니다. 둘째 줄은 측정 단위이며, 최대 15글자입니다. 나머지 부분은 flag 분류 규칙이며, 한 줄이거나 줄 쌍의 집합입니다.

규칙이 한 줄이면 그 줄이 결과를 Normal로 분류하는 기준입니다. 측정 결과가 이 기준을 만족하지 않으면 Abnormal로 분류합니다.

규칙이 줄 쌍의 집합이면(비어 있지 않고 최대 10쌍), 각 쌍의 첫 줄은 분류 기준이고, 둘째 줄은 두 개의 공백 문자 뒤에 오는 flag 이름입니다. flag 이름은 최대 25글자입니다.

어느 경우든 분류 기준은 최대 50글자이며, 아래 형식 중 하나입니다. 여기서 A와 B는 실수이고 x는 측정 결과입니다.

기준 형식의미
< Ax<Ax < A
≤ Ax≤Ax \leq A
> Ax>Ax > A
>= Ax≥Ax \geq A
[A, B] 또는 A BA≤x≤BA \leq x \leq B
[A, B)A≤x<BA \leq x < B
(A, B]A<x≤BA < x \leq B
(A, B)A<x<BA < x < B

기준의 각 부분 사이에는 공백이 몇 개든 올 수 있습니다. 예를 들어 [2,5], [ 2 , 5], 2 5는 올바르고 서로 같은 표기입니다. 줄 쌍으로 된 규칙이 주어지면, 그 기준들이 측정값 전체 범위를 올바르게 나눈다고 보장합니다. 즉 가능한 모든 측정 결과는 제공된 기준 중 정확히 하나에 맞습니다.

이어지는 구역은 환자별 측정 결과를 나타냅니다. 각 구역의 첫 줄은 최대 60글자의 환자 이름입니다. 그다음 줄마다 측정 이름과 값(실수)이 나오며, 둘은 1개 이상 20개 이하의 공백으로 구분됩니다. 환자 한 명의 결과는 1개 이상 100개 이하입니다. 같은 측정 이름은 한 환자에게서 최대 한 번만 나옵니다.

출력

첫 번째 구역을 제외한 각 구역마다, 그 환자의 검사 보고서를 출력한 뒤 = 문자 80개로 이루어진 줄을 출력합니다. 보고서는 환자 이름이 적힌 줄과 검사 결과 표로 이루어집니다. 표 형식은 예제 출력에 나와 있습니다. 입력 구역에 측정이 k개 있으면 표는 길이가 정확히 75인 줄 k + 4개로 이루어집니다. 빈 자리는 모두 공백 문자로 채웁니다. 표는 네 개의 열을 가집니다.

Test 열은 측정 이름을 쓰며 1번째 문자부터 시작합니다. Result 열은 입력과 같은 형식으로 결과값을 쓰며 27번째 문자부터 시작합니다. Unit 열은 측정 단위를 쓰며 35번째 문자부터 시작합니다. Flag 열은 결과의 분류에 따른 flag를 쓰며 51번째 문자부터 시작합니다. flag가 Normal이면 이 칸에는 공백 문자 외에 아무것도 쓰지 않습니다.

측정 행은 해당 환자 구역의 입력 순서와 같은 순서로 출력합니다. 측정 행 외에 표에는 제목 줄 하나와 - 문자 75개로 이루어진 구분선 세 줄이 있습니다. 예제 출력을 참고하십시오.

주의: 이 문제는 매우 엄격하게 채점합니다. 출력의 모든 문자는 공백과 대소문자를 포함해 정답 출력과 정확히 일치해야 합니다.

예제1

  1. 예제 1

    입력
    Cholesterol
    mg/dl
    130~200
    ---------------------------------------------------------------------------
    HDL-chol
    mg/dl
    >= 55
    ---------------------------------------------------------------------------
    Fast Blood Sugar
    mg/dl
    <70
      Hypoglycemia
    70 ~ 99
      Normal
    (99, 126)
      Impaired (Prediabetic)
    >= 126
      Diabetic
    ---------------------------------------------------------------------------
    Secret Poison
    mg/L
    <   0.1
      Noneffective
    0.1 ~0.5
      Mild
    (   0.5  , 1.5   ]
      Moderate
    (1.5,5)
      Severe
    [5, 10]
      Lethal (non-instant)
    >   10
      Instant Killer
    ================================================================================
    Mr. Fat
    Fast Blood Sugar 130
    Cholesterol      230
    HDL-chol          55
    ================================================================================
    413%3! 4n@+01!3\/!(# /\/@\/@1n`/
    Secret Poison   3.8
    Cholesterol     150
    ================================================================================
    Y@1d@ 49#@|=@21!
    Fast Blood Sugar 90
    Secret Poison     7.9
    ================================================================================
    
    예상 출력
    Mr. Fat
    ---------------------------------------------------------------------------
    Test                      Result  Unit            Flag                     
    ---------------------------------------------------------------------------
    Fast Blood Sugar          130     mg/dl           Diabetic                 
    Cholesterol               230     mg/dl           Abnormal                 
    HDL-chol                  55      mg/dl                                    
    ---------------------------------------------------------------------------
    ================================================================================
    413%3! 4n@+01!3\/!(# /\/@\/@1n`/
    ---------------------------------------------------------------------------
    Test                      Result  Unit            Flag                     
    ---------------------------------------------------------------------------
    Secret Poison             3.8     mg/L            Severe                   
    Cholesterol               150     mg/dl                                    
    ---------------------------------------------------------------------------
    ================================================================================
    Y@1d@ 49#@|=@21!
    ---------------------------------------------------------------------------
    Test                      Result  Unit            Flag                     
    ---------------------------------------------------------------------------
    Fast Blood Sugar          90      mg/dl                                    
    Secret Poison             7.9     mg/L            Lethal (non-instant)     
    ---------------------------------------------------------------------------
    ================================================================================