시장조성하기
시간 제한4초메모리 제한1024 MB
N번의 매매에서 각 시점마다 [a_i, b_i] 범위의 정수를 선택해 누적 보유량이 0이 될 때마다 받는 보상의 합을 최대로 만든다.
문제
Hudson River Trading(HRT)은 뛰어난 수학, 기술적 역량을 활용하여 거래 전략을 설계하는 퀀트 트레이딩 회사이다. HRT는 엔지니어와 연구자들이 한 팀을 이뤄 어려운 문제를 해결하며, 글로벌 금융 시장에서 매일 수백만 주의 주식을 거래한다.
HRT의 신입 알고리즘 개발자는 새로 설계한 거래 전략을 따르는 시장조성(market-making) 엔진을 개발한 뒤, 그 엔진의 안정성을 평가하고자 한다. 시장조성 엔진은 주식을 보유하지 않은 가상의 계좌를 이용하여 거래를 시작하며, 개의 연속된 매매 시점(틱)에 아래와 같은 전략을 따라 거래한다.
- 번째 매매 시점에 엔진은 이상 이하의 정수 하나를 선택한다. 선택한 정수가 양수라면 그만큼 주식을 매수하고, 음수라면 선택한 정수의 절댓값만큼 주식을 매도하고, 이라면 주식을 매매하지 않는다. 이 때 보유한 주식이 부족해도 매도가 가능하며, 이 경우 보유 주식의 수는 음수가 된다.
- 번째 매매 직후 보유 주식이 주라면, 해당 전략이 포지션 노출을 최소화하여 위험성을 완화하고 시장 안정성에 기여했다고 평가하여 시장조성 엔진의 안정성이 만큼 증가한다.
- 수수료 또는 슬리피지 등 다른 요소는 모두 무시한다.
총 번의 매매를 모두 마쳤을 때, 신규 개발한 시장조성 엔진이 달성할 수 있는 안정성의 최댓값을 구해보자.
입력
첫째 줄에는 주식을 매매한 횟수 이 주어진다. ()
다음 개의 줄에 걸쳐, 그 중 번째 줄에 번째 매매에 대한 정보를 의미하는 세 정수 가 공백으로 구분되어 주어진다. (; )
출력
총 번의 매매를 모두 마쳤을 때, 신규 개발한 시장조성 엔진이 달성할 수 있는 안정성의 최댓값을 출력한다.