아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

똥게임

시간 제한1초메모리 제한512 MB

요약
1명에서 시작해 N번의 각 턴마다 두 연산 중 하나를 고르고, 한 번만 건너뛸 수 있으며, 인원이 0 이하로 떨어지지 않으면서 최종 인원을 최대로 만든다.
난이도

보통10점 중 7점

유형
동적 계획법, 구현, 수학
정답자
아직 제출이 없습니다

문제

이 게임은 똥냄새가 너무 나서 도저히 볼 수가 없다! 따라서 당신은 직접 똥게임을 하지 않고 프로그램한테 똥게임을 시킬 것이다. 처음에는 사람 1명으로 시작한다. 당신에게는 총 NN번의 턴이 주어지며, 각 턴마다 다음 선택지 4개 중 2개가 주어진다. 같은 선택지가 주어질 수도 있다. 각 선택지는 +x,−x,\*x,/x (1≤x≤9)+x, -x, \*x, /x \, (1 \leq x \leq 9) 중 하나로 주어진다.

  1. +x+x를 선택할 경우, 사람의 수가 xx명만큼 증가한다.
  2. −x-x를 선택할 경우, 사람의 수가 xx명만큼 감소한다.
  3. \*x\*x를 선택할 경우, 사람의 수가 xx배가 된다.
  4. /x/x를 선택할 경우, 사람의 수가 xx만큼 나눠진다. 만약 현재 사람 수가 x로 나눠지지 않을 경우 나머지는 버린다.

NN개의 선택지 중 1번에 한해 광고를 보고 선택지를 건너뛸 수 있다. 광고를 보지 않고 선택지를 건너뛰지 않아도 된다. 만약 각 턴이 끝난 뒤 현재 사람이 0명 이하가 되면 게임 오버가 된다. 당신은 NN번의 선택지를 거친 후 사람의 수를 최대로 만들어야 한다. 어떠한 선택을 하더라도 중간에 사람의 수가 32비트 정수 범위를 넘지 않음을 보장한다.

입력

첫 번째 줄에 선택지의 개수 N (1≤N≤100,000)N \, (1 \leq N \leq 100,000)가 주어진다.

그 이후 NN개의 줄에 걸쳐 2개의 선택지가 공백을 사이로 두고 주어진다.

각 선택지는 +x,−x,\*x,/x+x, -x, \*x, /x 중 하나로 주어진다 (1≤x≤91 \leq x \leq 9).

출력

NN개의 선택지를 거친 후 최대 사람의 수를 출력한다.

만약 어떤 선택을 하더라도 게임 오버가 된다면 ddong game을 출력한다.

힌트

첫번째 예제에서는 +5+5, \*2\*2를 선택하고 3번째 선택지를 건너뛸 경우, 12명으로 최대가 된다.

두번째 예제에서는 어떤 선택지를 고르더라도 게임 오버가 된다.

예제2

  1. 예제 1

    입력
    3
    +5 *2
    +4 *2
    -5 /2
    
    예상 출력
    12
    
  2. 예제 2

    입력
    3
    +3 *6
    -8 -9
    -9 -9
    
    예상 출력
    ddong game