만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

내기

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

요약
두 문자열이 하나의 원래 문자열에서 로마 숫자 부분을 아라비아 숫자로 바꾸어 만들어질 수 있는지 판별합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 문자열 매칭, 문자열
정답자
아직 제출이 없습니다

문제

아나킨 스카이워커를 풀어 주고 하이퍼드라이브를 얻기 위해 퀘이곤 진은 부운타 이브 경주의 우승자를 두고 워토와 내기를 걸었다. 그런데 타투인에서 흔히 그러하듯 워토가 내기를 맺을 때 속임수를 썼다는 사실은 잘 알려져 있지 않다.

타투인에서 내기를 공식적으로 등록하려면 당사자들이 담당 관리를 찾아가야 하며, 관리는 같은 내용의 확인증 두 장을 발급한다. 두 장에는 같은 문자열이 적히는데, 이 문자는 아주 먼 훗날 먼 은하에서 라틴 문자라고 부르게 된다.

워토의 속임수는 이러했다. 그의 지인인 그 관리는 규격에서 벗어난 확인증을 만들었다. 법을 어기지 않으려고 올바른 확인증 두 장을 먼저 작성한 뒤 그 내용을 바꾸었다. 관리는 임의의 부분 문자열을 골랐는데, 그 부분 문자열은 로마 숫자로 올바르게 적힌 자연수여야 했다. 그다음 그 부분 문자열을 같은 수를 나타내는 아라비아 숫자로 바꾸되, 수의 표기에 앞자리 0은 없도록 했다. 관리는 바꿀 수 있는 부분 문자열이 더 이상 없을 때까지 이 작업을 반복했다.

퀘이곤 진은 워토에게 끝내 속지 않았기 때문에 이 속임수는 아무에게도 언급된 적이 없다. 먼 은하에 사는 여러분은 규격에서 벗어난 두 확인증의 글이 하나의 문자열에서 만들어졌을 수 있는지 확인할 수 있겠는가?

입력

첫 번째 줄과 두 번째 줄에 각각 소문자 라틴 문자와 숫자로 이루어진 문자열이 주어진다. 각 문자열의 길이는 10510^5를 넘지 않는다. 이 문자열들의 어떤 부분 문자열도 올바른 로마 숫자 표기가 아님이 보장된다. 자연수인 모든 부분 문자열의 값은 200200을 넘지 않음이 보장된다. 숫자로만 이루어진 부분 문자열은 0으로 시작하지 않음이 보장된다.

출력

두 문자열이 하나의 문자열에서 만들어질 수 있으면 YES를, 그렇지 않으면 NO를 출력한다.

힌트

로마 숫자에서 I는 1, V는 5, X는 10, L은 50, C는 100, D는 500, M은 1000을 나타낸다. 수를 올바르게 쓰려면 천의 자리, 백의 자리, 십의 자리, 일의 자리 순서로 적어야 한다. 같은 숫자는 반복할 수 있지만 최대 세 번까지다. 작은 숫자를 큰 숫자의 왼쪽에 적으면 큰 숫자에서 작은 숫자를 뺀다. 이때 작은 숫자는 반복할 수 없다. 뺄셈 규칙은 여섯 가지뿐이다. IV는 44, IX는 99, XL은 4040, XC는 9090, CD는 400400, CM은 900900이다. 그 밖의 뺄셈 방식은 허용되지 않는다.

예제2

  1. 예제 1

    입력
    skywa50kera21
    skywa50kera12
    
    예상 출력
    YES
    
  2. 예제 2

    입력
    qu1gonj20
    qu1gonj200
    
    예상 출력
    NO