만드는 중입니다

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

수열 섞기

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

요약
두 수열 A와 B가 주어질 때, 최소 안정성이 x인 A의 구간 A'와 B의 구간 B' 쌍의 개수를 x마다 구합니다.
난이도

어려움10점 중 9점

유형
배열, 투 포인터, 조합론
정답자
아직 제출이 없습니다

문제

수열 CC의 구간이란 비어 있지 않은 연속 부분 수열이다. 길이가 kk인 수열에는 k(k+1)/2k(k+1)/2개의 구간이 있다. 각 구간은 시작 위치와 끝 위치로 정해지기 때문이다.

수열 [c1,c2,…,ck][c_1, c_2, \ldots, c_k]의 안정성은 다음 조건을 만족하는 가장 큰 정수 ss이다. 어떤 인덱스 ii (1≤i≤k−s+11 \le i \le k-s+1)가 존재하여 ci<ci+1<⋯<ci+s−1c_i < c_{i+1} < \cdots < c_{i+s-1}이거나 ci>ci+1>⋯>ci+s−1c_i > c_{i+1} > \cdots > c_{i+s-1}이다. 예를 들어 [8,6,1,3,5,7,4,2][8, 6, 1, 3, 5, 7, 4, 2]의 안정성은 4이다. 엄격하게 단조인 구간 [1,3,5,7][1, 3, 5, 7]이 있고, 이보다 긴 구간은 없기 때문이다.

두 수열 AA와 BB의 섞임은 길이가 ∣A∣+∣B∣|A|+|B|인 수열이다. 이 수열은 AA와 같은 부분 수열(연속일 필요는 없음)을 포함하고, 그 부분 수열을 제외한 나머지 원소가 순서대로 BB를 이룬다. 예를 들어 [1,2,3][1, 2, 3]과 [4,5][4, 5]의 섞임에는 [1,4,2,5,3][1, 4, 2, 5, 3], [4,5,1,2,3][4, 5, 1, 2, 3], [4,1,5,2,3][4, 1, 5, 2, 3]이 있다. [1,2,3,4,3][1, 2, 3, 4, 3]과 [1,2,3,5,4][1, 2, 3, 5, 4]는 섞임이 아니다.

f(A,B)f(A, B)를 AA와 BB의 섞임 중 안정성의 최솟값이라고 하자.

길이가 각각 nn, mm인 두 수열 AA, BB가 주어진다. f(A,B)f(A, B) 대신, 11부터 n+mn+m까지의 각 정수 xx에 대해 A′A'는 AA의 구간, B′B'는 BB의 구간이고 f(A′,B′)=xf(A', B') = x를 만족하는 쌍 (A′,B′)(A', B')의 개수를 구하라. 개수가 매우 클 수 있으므로 109+710^9+7로 나눈 나머지를 출력한다.

입력

첫 줄에 두 정수 nn, mm (1≤n,m≤300 0001 \le n, m \le 300\,000)이 주어진다. 각각 AA와 BB의 길이이다.

둘째 줄에 nn개의 정수 A1,A2,…,AnA_1, A_2, \ldots, A_n (1≤Ai≤n+m1 \le A_i \le n+m)이 주어진다.

셋째 줄에 mm개의 정수 B1,B2,…,BmB_1, B_2, \ldots, B_m (1≤Bi≤n+m1 \le B_i \le n+m)이 주어진다.

AA와 BB의 모든 원소는 서로 다르다. 즉, AA와 BB를 이어 붙인 수열은 11부터 n+mn+m까지의 순열이다.

출력

n+mn+m개의 정수를 공백으로 구분하여 한 줄에 출력한다. ii번째 수는 f(A′,B′)=if(A', B') = i를 만족하는 쌍 (A′,B′)(A', B')의 개수를 109+710^9+7로 나눈 나머지이다.

힌트

[1,2,5,7,4][1, 2, 5, 7, 4]와 [8,3,6][8, 3, 6] 전체에 대해 f=2f = 2이다. 안정성이 2인 섞임의 예는 [1,8,2,5,3,7,4,6][1, 8, 2, 5, 3, 7, 4, 6]이다.

[1,2,5,7][1, 2, 5, 7]과 [3][3]에 대해서는 f=3f = 3이다. 안정성이 3인 섞임의 예는 [1,2,5,3,7][1, 2, 5, 3, 7]이다. 이 쌍으로는 안정성을 3보다 작게 만들 수 없다.

[4][4]와 [6][6]에 대해서는 f=2f = 2이며, 두 섞임 [4,6][4, 6]과 [6,4][6, 4] 모두 유효한 예이다.

이 예시의 모든 구간 쌍은 안정성이 3 이하인 섞임을 만들 수 있다. 따라서 x≥4x \ge 4인 답은 모두 0이다.

예제1

  1. 예제 1

    입력
    5 3
    1 2 5 7 4
    8 3 6
    
    예상 출력
    0 84 6 0 0 0 0 0