페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#2309

[중등부] 2024 KOI 2차대회 대비 모의고사 (3주차)

두 배열 나누기
서브태스크
2초 1024MB

문제

길이가 N인 두 개의 배열이 있다. 첫 번째 배열의 i번째 요소는 a_i이고, 두 번째 배열의 i번째 요소는 b_i다.

두 배열을 다음 조건을 만족하도록 비어 있지 않은 하위 배열들로 나누려고 한다:

  1. 모든 요소는 정확히 하나의 하위 배열에 포함된다.

  2. 두 배열이 동일한 수의 하위 배열로 나뉜다. 첫 번째 배열과 두 번째 배열이 모두 정확히 k개의 하위 배열로 나뉜다.

  3. 모든 1 \le i \le k에 대해, 첫 번째 배열의 i번째 하위 배열의 평균이 두 번째 배열의 i번째 하위 배열의 평균보다 작거나 같아야 한다.

이 조건을 만족하는 방법의 수를 10^9+7로 나눈 나머지로 출력하시오.


입력

첫 번째 줄에는 N이 주어진다. (1 \le N \le 500)

두 번째 줄에는 a_1, a_2, ..., a_N이 주어진다. (1 \le a_i \le 10^6)

세 번째 줄에는 b_1, b_2, ..., b_N이 주어진다. (1 \le b_i \le 10^6)


출력

첫 줄에 조건을 만족하는 방법의 수를 출력한다.


부분문제

번호 점수 조건
#110점

N \le 10

#220점

N \le 80

#330점

N \le 300

#440점

추가 제한 없음


예제 #1

2
2 4
4 4
2

해당 예제에서 가능한 두 가지 방법은:

  • 첫 번째 배열을 [2],[4]로, 두 번째 배열을 [4],[4]로 나누는 경우

  • 첫 번째 배열을 [2,4]로, 두 번째 배열을 [4,4]로 나누는 경우


예제 #2

3
3 9 6
6 6 6
3

해당 예제에서 가능한 세 가지 방법은:

첫 번째 배열을 [3,9],[6]로, 두 번째 배열을 [6,6],[6]로 나누는 경우

첫 번째 배열을 [3,9],[6]로, 두 번째 배열을 [6],[6,6]로 나누는 경우

첫 번째 배열을 [3,9,6]로, 두 번째 배열을 [6,6,6]로 나누는 경우


예제 #3

5
14 35 7 21 14
14 7 35 14 14
1

해당 예제에서 가능한 유일한 방법은:

첫 번째 배열을 [14],[35,7,21],[14]로, 두 번째 배열을 [14],[7,35],[14,14]로 나누는 경우


예제 #4

4
5 1 3 2
4 6 1 2
5

예제 #5

7
3 5 2 3 2 1 4
5 4 2 5 4 4 1
154
로그인해야 코드를 작성할 수 있어요.