만드는 중입니다

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

더 작은 평균

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

요약
두 배열을 같은 개수의 연속 구간으로 나눌 때, 짝이 되는 a 구간의 평균이 b 구간의 평균 이하인 방법의 수를 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

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

문제

Bessie에게는 길이가 NN인 배열이 두 개 있다 (1≤N≤5001 \le N \le 500). 첫 번째 배열의 ii번째 원소는 aia_i (1≤ai≤1061 \le a_i \le 10^6)이고, 두 번째 배열의 ii번째 원소는 bib_i (1≤bi≤1061 \le b_i \le 10^6)이다.

Bessie는 두 배열을 각각 공집합이 아닌 연속 부분 배열로 나누려고 한다. 다음 조건을 만족해야 한다.

  1. 모든 원소는 정확히 하나의 부분 배열에 속한다.
  2. 두 배열은 같은 개수의 부분 배열로 나뉜다. 그 개수를 kk라고 하면, 첫 번째 배열과 두 번째 배열은 각각 정확히 kk개의 부분 배열로 나뉜다.
  3. 모든 1≤i≤k1 \le i \le k에 대해, 첫 번째 배열에서 왼쪽부터 ii번째 부분 배열의 평균은 두 번째 배열에서 왼쪽부터 ii번째 부분 배열의 평균보다 작거나 같다.

이 조건을 만족하도록 두 배열을 나누는 방법의 수를 109+710^9+7로 나눈 나머지를 구하라. 부분 배열의 개수가 다르거나, 어떤 원소가 다른 부분 배열에 속하면 서로 다른 방법으로 센다.

입력

첫 줄에 NN이 주어진다. 다음 줄에 a1,a2,…,aNa_1, a_2, \ldots, a_N이 주어진다. 다음 줄에 b1,b2,…,bNb_1, b_2, \ldots, b_N이 주어진다.

출력

위 조건을 만족하도록 두 배열을 나누는 방법의 수를 109+710^9+7로 나눈 나머지를 출력한다.

예제4

  1. 예제 1

    입력
    2
    1 2
    2 2
    
    예상 출력
    2
    
  2. 예제 2

    입력
    3
    1 3 2
    2 2 2
    
    예상 출력
    3
    
  3. 예제 3

    입력
    5
    2 5 1 3 2
    2 1 5 2 2
    
    예상 출력
    1
    
  4. 예제 4

    입력
    7
    3 5 2 3 4 4 1
    5 3 5 3 3 4 1
    
    예상 출력
    140