만드는 중입니다

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

잠자는 소

시간 제한1초메모리 제한512 MB

요약
각 소가 들어갈 수 있는 외양간을 짝짓는 방법 중 더 이상 늘릴 수 없는 매칭의 개수를 10^9+7로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 정렬, 조합론
정답자
아직 제출이 없습니다

문제

Farmer John에게는 크기가 서로 다른 소 NN (1≤N≤3000)(1 \le N \le 3000)마리가 있다. 처음에 그는 소마다 맞춤 외양간을 하나씩 지어 주었다. 그런데 지금은 일부 소가 외양간보다 커졌다. 구체적으로, FJ가 지은 외양간의 크기는 t_1,t_2,…,t_Nt\_1,t\_2,\ldots,t\_N이고, 소의 현재 크기는 s_1,s_2,…,s_Ns\_1,s\_2,\ldots,s\_N이다 (1≤s_i,t_i≤1091\le s\_i,t\_i\le 10^9).

매일 밤 소들은 잠잘 외양간을 찾는다. 소 ii는 외양간 jj에 들어갈 수 있을 때에만, 즉 s_i≤t_js\_i\le t\_j일 때에만 그 외양간에서 잘 수 있다. 외양간 하나에는 소를 최대 한 마리만 넣을 수 있다.

소와 외양간의 배정이 최대(maximal)라는 것은, 배정된 모든 소가 해당 외양간에 들어가고, 배정되지 않은 모든 소가 배정에서 빠진 빈 외양간 어디에도 들어갈 수 없을 때를 말한다.

최대 매칭의 개수를 109+710^9 + 7로 나눈 나머지를 구하시오.

입력

1행에 NN이 주어진다.

2행에 공백으로 구분된 정수 s_1,s_2,…,s_Ns\_1,s\_2,\ldots,s\_N이 주어진다.

3행에 공백으로 구분된 정수 t_1,t_2,…,t_Nt\_1,t\_2,\ldots,t\_N이 주어진다.

출력

최대 매칭의 개수를 109+710^9 + 7로 나눈 나머지를 출력한다.

힌트

아래는 모든 최대 매칭 아홉 가지를 나열한 것이다. 순서쌍 (i,j)(i,j)는 소 ii가 외양간 jj에 배정됨을 뜻한다.

(1, 1), (2, 2), (3, 4)
(1, 1), (2, 3), (3, 4)
(1, 1), (2, 4)
(1, 2), (2, 3), (3, 4)
(1, 2), (2, 4)
(1, 3), (2, 2), (3, 4)
(1, 3), (2, 4)
(1, 4), (2, 2)
(1, 4), (2, 3)

예제1

  1. 예제 1

    입력
    4
    1 2 3 4
    1 2 2 3
    
    예상 출력
    9