정수 방정식 검사기

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

요약
주어진 등식 문자열을 올바름, 형식 오류, 계산 오류, 또는 두 글자 이하를 바꿔 고칠 수 있는 오타로 분류한다.
난이도

어려움10점 중 9점

유형
완전 탐색, 구현, 문자열, 수학
정답자
아직 제출이 없습니다

문제

이 문제에서는 오류 교정 기능이 있는 정수 방정식 검사기를 만들어야 한다.

정수 방정식은 다음과 같은 형식으로 주어진다.

<number1><operation><number2>=<number3>

여기서 "<numberI>"는 앞에 0이 붙지 않는 10910^9 이하의 양의 정수를 나타내고, "<operation>"은 네 가지 기본 연산 중 하나를 나타내는 '+', '-', '*', '/' 중 하나이다(단항 플러스와 단항 마이너스는 허용되지 않음). 이러한 조건을 만족하는 식을 올바른 형식이라고 한다.

검사기는 방정식을 읽고 다음 중 하나를 출력한다.

  • Correct --- 올바른 형식이고 수학적으로 맞는 방정식이 주어진 경우.
  • Format Error --- 주어진 방정식이 기본 형식에 맞지 않는 경우.
  • Typo: <equation1> instead of <equation2> --- 주어진 방정식(<equation1>)이 올바른 형식이지만 수학적으로 맞지 않고, 문자를 최대 두 개까지 바꾸면 수학적으로 맞고 올바른 형식인 방정식(<equation2>)을 얻을 수 있는 경우.
  • Math Error --- 주어진 방정식이 올바른 형식이고 수학적으로 맞지 않으며, 문자를 두 개 이하로 고쳐서 올바른 형식이고 수학적으로 맞는 방정식을 얻는 것이 불가능한 경우.

문자는 바꾸기만 할 수 있고, 삽입하거나 삭제할 수는 없다.

입력

첫째 줄에 검사할 방정식을 나타내는 길이 30 이하의 비어 있지 않은 문자열이 주어진다. 이 문자열은 십진 숫자('0' - '9'), 산술 연산자('+', '-', '*', '/'), 등호('=')로만 이루어진다.

출력

검사 결과를 출력한다. 명확한 이해를 위해 예제를 참고한다.

예제5

  1. 예제 1

    입력
    2-2=0
    
    예상 출력
    Format Error
    
  2. 예제 2

    입력
    7/2=3
    
    예상 출력
    Typo: 7/2=3 instead of 6/2=3
    
  3. 예제 3

    입력
    2*2=47
    
    예상 출력
    Math Error
    
  4. 예제 4

    입력
    239*2=237
    
    예상 출력
    Typo: 239*2=237 instead of 239-2=237
    
  5. 예제 5

    입력
    112*11=13
    
    예상 출력
    Math Error