한 투자자가 자산을 NINSTRUMENTS개의 금융 상품에 나누어 투자한다. 한 상품의 한 기간(term)을 생각하고, 그 기간이 시작될 때 이 상품이 보유한 금액을 $P$라 하자. 상품이 아직 열려 있다면 $P$에 대해 다음 세 가지가 순서대로 적용된다.
FIXED_FEE를 뺀다.PERCENTAGE_FEE에 $P$(기간 시작 시점의 금액)를 곱한 값이다.RETURN에 $P$를 곱한 값이며, RETURN은 양수일 수도 음수일 수도 있다.고정 비용을 $f$, 비율 수수료를 $c$, 수익률을 $r$라 하면 기간이 끝난 뒤 상품의 값은 $$P - f - cP + rP$$ 이다.
어떤 계좌의 값이 한 기간이 끝난 뒤 0 이하가 되면 그 계좌는 닫힌 것으로 간주한다. 닫힌 계좌는 재조정으로 다시 열릴 때까지 정확히 0으로 취급되며 어떤 수수료도 부과되지 않는다.
재조정(rebalancing)은 NREBALANCE 기간마다 한 번씩 일어난다. 이때 모든 상품의 잔액을 하나의 총액으로 합친 뒤, 각 상품의 원래 시작 원금 PRINCIPAL_START의 비율에 따라 다시 나눈다. 재조정을 하지 않으면 수익률이 높은 상품이 점점 포트폴리오를 지배하게 되어, 균형 잡힌 계획보다 더 큰 위험에 노출된다. 모든 상품이 동시에 0이 되는 것도 가능하며, 이 경우 총액이 0이므로 재조정을 해도 모두 0으로 남고 남은 기간 동안 모든 계좌가 닫힌 채로 유지된다.
NTERMS 기간이 모두 끝난 뒤 각 상품의 최종 값을 구하라. 만약 마지막 기간 NTERMS에서 재조정이 일어날 차례라면, 그 마지막 재조정을 하기 전의 값을 출력한다. 모든 계산은 배정밀도(double)로 하고 중간 값을 반올림하지 말며, 최종 답만 센트(소수 둘째 자리)로 반올림한다.
첫 줄에는 세 양의 정수가 주어진다.
NINSTRUMENTS NTERMS NREBALANCE
상품 수는 최대 10, 기간 수는 최대 20이다($1 \le \text{NINSTRUMENTS} \le 10$, $1 \le \text{NTERMS} \le 20$, $\text{NREBALANCE} \ge 1$). 이어서 공백으로 구분된 실수들이 다음 형식으로 3줄 주어진다.
FIXED_FEE(1) .. FIXED_FEE(NINSTRUMENTS)
PERCENTAGE_FEE(1) .. PERCENTAGE_FEE(NINSTRUMENTS)
PRINCIPAL_START(1) .. PRINCIPAL_START(NINSTRUMENTS)
마지막으로 NTERMS개의 줄이 주어지며, 각 줄에는 그 기간에서 각 상품의 수익률을 나타내는 NINSTRUMENTS개의 실수가 있다.
RETURN(1,1) .. RETURN(1,NINSTRUMENTS)
...
RETURN(NTERMS,1) .. RETURN(NTERMS,NINSTRUMENTS)
모든 비율(PERCENTAGE_FEE와 RETURN)은 비(ratio)로 주어지며 소수점 이하 최대 4자리이다. 예를 들어 수수료 0.0002는 매 기간 해당 상품 투자액의 0.02%가 수수료로 빠진다는 뜻이다. FIXED_FEE와 PRINCIPAL_START는 음이 아닌 실수이며 소수점 이하 2자리로 주어진다. PRINCIPAL_START 값 중 적어도 하나는 양수이다.
NTERMS 기간이 끝난 뒤 각 상품의 최종 원금을 한 줄에 공백 하나로 구분하여 출력한다. 각 값은 센트(소수 둘째 자리)로 반올림하며 항상 소수점 이하 두 자리로 표기한다(닫힌 계좌는 0.00으로 출력된다).
PRINCIPAL_END(1) .. PRINCIPAL_END(NINSTRUMENTS)