충분히 긴 문자열에 두 삽입·삭제 연산 열을 적용했을 때 결과가 항상 같은지 판정한다.
어려움8문자열수학구현시뮬레이션아직 제출이 없습니다시간 제한1초메모리 제한512 MB긴 DNA 서열을 저장하려고 어떤 회사가 문자 100억 개가 넘는 문자열도 담는 LongLongString 클래스를 만들었다. 이 클래스가 지원하는 연산은 두 가지다.
Ins(p, c): 위치 p에 문자 c를 넣는다.Del(p): 위치 p의 문자를 지운다.DNA 편집 프로그램은 Ins 연산과 Del 연산을 차례로 나열한 것이다. 편집 프로그램 두 개가 같은지 판정하는 프로그램을 작성하라. 여기서 두 프로그램이 같다는 것은 충분히 긴 문자열에 각각 적용했을 때 결과가 항상 같다는 뜻이다. 예를 들면 다음과 같다.
Del(1) Del(2)와 Del(3) Del(1)은 같다.Del(2) Del(1)과 Del(1) Del(2)는 다르다.Ins(1, X) Del(1)은 같다.Ins(14, B) Ins(14, A)와 Ins(14, A) Ins(15, B)는 같다.Ins(14, A) Ins(15, B)와 Ins(14, B) Ins(15, A)는 다르다.입력은 DNA 편집 프로그램 두 개로 이루어진다. 각 프로그램의 연산 개수는 0개 이상 2,000개 이하이고, 연산 하나가 한 줄을 차지한다. 줄의 첫 글자는 Del 연산이면 D, Ins 연산이면 I, 프로그램의 끝이면 E이다.
D로 시작하는 줄은 D, 공백, 지울 문자의 위치 순서로 이어진다. 위치는 1 이상 1010 이하의 정수다. 지워진 문자보다 뒤에 있던 문자는 모두 한 칸씩 앞으로 당겨진다.
I로 시작하는 줄은 I, 공백, 새 문자를 넣을 위치, 공백, 넣을 문자 순서로 이어진다. 위치는 1 이상 1010 이하의 정수이고, 넣을 문자는 알파벳 대문자 하나다. 원래 그 위치에 있던 문자와 그보다 뒤에 있던 문자는 모두 한 칸씩 뒤로 밀린다.
두 프로그램이 같으면 0을, 다르면 1을 한 줄에 출력한다.