수열 섞기
시간 제한9초메모리 제한1024 MB
두 수열 A와 B가 주어질 때, 최소 안정성이 x인 A의 구간 A'와 B의 구간 B' 쌍의 개수를 x마다 구합니다.
문제
수열 의 구간이란 비어 있지 않은 연속 부분 수열이다. 길이가 인 수열에는 개의 구간이 있다. 각 구간은 시작 위치와 끝 위치로 정해지기 때문이다.
수열 의 안정성은 다음 조건을 만족하는 가장 큰 정수 이다. 어떤 인덱스 ()가 존재하여 이거나 이다. 예를 들어 의 안정성은 4이다. 엄격하게 단조인 구간 이 있고, 이보다 긴 구간은 없기 때문이다.
두 수열 와 의 섞임은 길이가 인 수열이다. 이 수열은 와 같은 부분 수열(연속일 필요는 없음)을 포함하고, 그 부분 수열을 제외한 나머지 원소가 순서대로 를 이룬다. 예를 들어 과 의 섞임에는 , , 이 있다. 과 는 섞임이 아니다.
를 와 의 섞임 중 안정성의 최솟값이라고 하자.
길이가 각각 , 인 두 수열 , 가 주어진다. 대신, 부터 까지의 각 정수 에 대해 는 의 구간, 는 의 구간이고 를 만족하는 쌍 의 개수를 구하라. 개수가 매우 클 수 있으므로 로 나눈 나머지를 출력한다.
입력
첫 줄에 두 정수 , ()이 주어진다. 각각 와 의 길이이다.
둘째 줄에 개의 정수 ()이 주어진다.
셋째 줄에 개의 정수 ()이 주어진다.
와 의 모든 원소는 서로 다르다. 즉, 와 를 이어 붙인 수열은 부터 까지의 순열이다.
출력
개의 정수를 공백으로 구분하여 한 줄에 출력한다. 번째 수는 를 만족하는 쌍 의 개수를 로 나눈 나머지이다.
힌트
와 전체에 대해 이다. 안정성이 2인 섞임의 예는 이다.
과 에 대해서는 이다. 안정성이 3인 섞임의 예는 이다. 이 쌍으로는 안정성을 3보다 작게 만들 수 없다.
와 에 대해서는 이며, 두 섞임 과 모두 유효한 예이다.
이 예시의 모든 구간 쌍은 안정성이 3 이하인 섞임을 만들 수 있다. 따라서 인 답은 모두 0이다.