부분 문자열 정렬
시간 제한2초메모리 제한1024 MB
각 질의마다 A, B, C에서 l부터 r까지의 부분 문자열 세 개를 사전순으로 정렬해 같은 자리에 다시 씁니다. 모든 질의를 처리한 뒤의 A, B, C를 출력합니다.
문제
이 문제에서 모든 문자열의 인덱스는 1부터 시작한다. 는 문자열 의 번째 문자이고, 은 로 이루어진 부분 문자열이다.
길이가 각각 인 문자열 , , 가 주어진다. 쿼리 개를 주어진 순서대로 처리해야 한다. 각 쿼리는 정수 과 을 받으며, 다음 절차를 따른다.
- 부분 문자열 , , 를 복사한다. 복사본을 각각 , , 라 한다.
- 를 사전순으로 정렬한다. 정렬 결과를 라 한다.
- 을 으로, 을 으로, 을 으로 바꾼다.
모든 쿼리를 처리한 뒤 , , 의 최종 값을 구하라.
입력
첫 줄에 정수 과 가 주어진다 (, ). 다음 세 줄에는 각각 길이 의 소문자 문자열 , , 가 주어진다. 이어서 개의 줄에 정수 과 ()이 주어진다.
출력
, , 의 최종 값을 이 순서대로 세 줄에 출력한다.