시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 (추가 시간 없음) | 1024 MB (추가 메모리 없음) | 197 | 52 | 36 | 23.529% |
쿠키런 오븐브레이크는 점프와 슬라이드로 젤리를 최대한 많이 획득하여 최대 점수를 달성하는 게임이다. 스탠딩벨은 자신이 가장 좋아하는 팬케이크맛 쿠키의 성능을 조절하기 위해, 쿠키의 설정값 ($maxC$, $u$, $d$)을 바꾸면서 점수가 얼마나 변하는지 실험을 하기로 했다.
팬케이크맛 쿠키를 실험하기 위해 가로 $w+1$, 세로 $h+1$ 짜리 맵에서 아래의 조건에 따라 플레이하려고 한다.
이제부터 여러분은 위의 실험 환경에서 팬케이크맛 쿠키의 능력을 바꿔보면서 실험할 예정이다. 팬케이크맛 쿠키의 능력치 $maxC$, $u$, $d$ 를 조절하면서 팬케이크맛 쿠키의 밸런스를 조절해보자. 아래의 예시는 $w=4$, $h=5$, $u=3$, $d=1$, $maxC=2$로 설정된 맵에서 시점 $t$별 PanCakeCookie 클래스의 정보이다.
팬케이크맛 쿠키의 능력 조정은 ‘획득할 수 있는 최대 점수’를 기준으로 설정해야 밸런스를 파악할 수 있다. 즉, $0 < t \leq w$ 인 각 시점 $t$에 대해서 $0 < t' < t$ 의 선택이 정해져 있을 때, $t$ 시점의 점수를 최대화하도록 능력 사용 여부를 결정한다. 만약, 두가지 이상 경로에서 얻을 수 있는 최대 점수가 같다면 더 빠른 시점에 능력을 사용하는 경로를 우선시한다. 위 경로를 저장하고 있는 PanCakeCookie 클래스를 구현해보자.
각각 테스트 케이스당 능력치를 변화하는 멤버함수(setC, setU, setD)는 최대 $15$번 들어오며, 각 능력치 변화 이후 setT 함수는 최대 $100$회 호출된다. 즉, setT 함수는 최대 $1\ 500$회 호출된다.
다음 압축 파일에는 C++, python, java의 채점기, 예제 입력, class 탬플릿이 들어 있다.
C++17, Java 8, Python 3, PyPy3, C++11, C++14, Java 8 (OpenJDK), Java 11, C++20, Java 15