함수 문자열

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

요약
f, g, x로만 이루어진 문자열이 함수 문자열인지 판별하고, 맞다면 정의된 규칙으로 평가한 값을 출력한다.
난이도

보통10점 중 6점

유형
스택, 문자열, 구현
정답자
아직 제출이 없습니다

문제

하나의 정수로 평가(evaluate)될 수 있는 함수 문자열은 다음과 같이 정의된다.

  1. x는 함수 문자열이다. 위 문자열은 00으로 평가된다.
  2. S가 함수 문자열이면, gS도 함수 문자열이다. 위 문자열은 S가 평가된 값에 11을 더한 값으로 평가된다.
  3. S, T가 함수 문자열이면, fST도 함수 문자열이다. 위 문자열은 S와 T가 평가된 값 중 더 크지 않은 값으로 평가된다.

문자열이 주어지면 함수 문자열인지 확인하고, 만약 그렇다면 평가한 값을 구하자.

입력

첫 번째 줄에 f, g, x로만 이루어진 문자열 SS가 주어진다. (1≤(1 \leq ∣S∣|S| ≤1,000,000)\leq 1\\,000\\,000)

출력

첫 번째 줄에 주어진 문자열이 함수 문자열이라면 평가하여 값을 출력하고, 그렇지 않다면 -1을 출력한다.

예제3

  1. 예제 1

    입력
    fggxgx
    
    예상 출력
    1
    
  2. 예제 2

    입력
    xxx
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    gggx
    
    예상 출력
    3