(아직도 추수 감사절입니다)
추수 감사절 저녁 식사를 위해 칠면조를 얻었지만 고르게 분포시키는 방법을 모릅니다. 문제는 어떤 사람들은 다른 사람들보다 더 많이 먹기 때문에 해결책을 찾아야한다는 것입니다
입력
두 개의 입력이 있습니다. 첫 번째는 다양한 사람들의 예술입니다.
o
o \|/
\|/ |
| |
/ \ / \
아스키 아트 사양
각 사람은 너비가 3 열입니다. 각 사람은 한 칸의 공백으로 구분됩니다. 각 사람의 맨 위는 o
입니다. 아래 o
, 오프셋 1
과 -1
는 x에 있습니다 \
및 /
각각. o
입력에서의 두 번째 행부터 마지막 행 까지는 |
1 인당 금액이 "높이"입니다. 각 사람으로부터 추출해야 할 유일한 데이터는 "높이"입니다.
항상 최소한 한 사람이있을 것입니다. 각 사람은 항상 최소 높이가 2입니다. 프로그램이 처리해야하는 최대 높이에있다 적어도 64의 높이.
공백으로 채워진 입력을 사각형으로 만들려면 답을 지정하십시오.
두 번째 입력은 칠면조입니다. 칠면조는 실제로 칠면조가 아니며 칠면조의 NxM
크기 보다 더 큽니다. 두 번째 입력 값이 3x2
인 경우 칠면조의 크기는 3 * 2이며 총 면적은 6입니다.
산출
출력은 목록 또는 언어의 가장 가까운 대안 (예 : 배열) 일 수 있습니다. 값을 공백으로 구분하여 문자열을 출력 할 수도 있습니다.
각 사람의 값은 입력 된 순서대로 출력되어야합니다.
도전
당신의 목표는 사람들 사이에서 칠면조 지역을 나누는 것입니다.
시나리오 예 :
그들은의 높이로 두 사람이 있다고 가정 3
하고 6
각각. 의 칠면조가있는 경우 5x3
. 분배해야 할 칠면조의 총 면적은입니다 15
.
이제 모든 사람에게 어떻게 배포 하시겠습니까? 방법은 다음과 같습니다.
the_persons_height
TurkeyForAPerson = -------------------- * turkey_area
sum_of_all_heights
즉, 키가 첫 번째 인 사람 3
은 3/9*15
칠면조를 받거나 5
두 번째 사람은 키를 6
얻 6/9*15
거나 10
칠면조 를 얻습니다 .
산출
.
보너스를 선택하지 않는 한 출력은 숫자로만 이루어져야합니다 . 이 경우 숫자, 공백 ( ) 및 슬래시 (
/
) 로만 구성 될 수 있습니다 .
전체 예
입력:
6x5
o
|
o \|/
\|/ |
| |
| |
/ \ / \
산출:
11.25 18.75
보너스
-20 % 보너스 : 분수를 출력합니다 (단순화해야 함) . 혼합 된 분수인지 부적절한 분수인지는 중요 하지 않습니다 .
채점
이것은 코드 골프 이므로 바이트 단위의 가장 짧은 코드가 승리합니다!