만드는 중입니다

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

인생

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

요약
각 n마다 뒤쪽 A와 B 값이 U만큼 늘거나 D만큼 줄어드는 조건에서 선택한 값의 합이 최소가 되는 f(n)을 구합니다.
난이도

어려움10점 중 8점

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

문제

NN개의 정수로 이루어진 두 배열 AA, BB와 두 정수 UU, DD가 주어진다. 배열 AA, BB의 ii번째 원소는 각각 AiA_i, BiB_i이다.

f(n)f(n)은 다음과 같이 정의한다.

  • i=1,2,⋯ ,ni = 1, 2, \cdots, n에 대해 순서대로 다음 과정을 수행한다.
    1. AiA_i와 BiB_i 중 하나를 고른다.
    2. 이후 i<j≤ni < j \le n을 만족하는 모든 jj에 대해, AiA_i를 골랐다면 AjA_j와 BjB_j의 값이 각각 UU만큼 증가하고, BiB_i를 골랐다면 AjA_j와 BjB_j의 값이 각각 DD만큼 감소한다.

f(n)f(n)은 수를 고르는 2n2^n가지 방법 중에서 고른 수들의 합의 최솟값이다.

11 이상 NN 이하의 모든 정수 nn에 대해 f(n)f(n)의 값을 구해 보자.

입력

첫째 줄에 배열의 길이 NN과 양의 정수 UU, DD가 공백으로 구분되어 주어진다. (1≤N≤300 0001 \le N \le 300\,000, 1≤U,D≤1061 \le U, D \le 10^6)

둘째 줄에 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N이 공백으로 구분되어 주어진다. (0≤Ai≤1060 \le A_i \le 10^6)

셋째 줄에 B1,B2,⋯ ,BNB_1, B_2, \cdots, B_N이 공백으로 구분되어 주어진다. (0≤Bi≤1060 \le B_i \le 10^6)

출력

NN개의 줄에 걸쳐 답을 출력한다. nn번째 줄에는 f(n)f(n)을 출력한다.

예제1

  1. 예제 1

    입력
    5 2 3
    4 8 2 8 1
    11 5 14 8 19
    
    예상 출력
    4
    11
    9
    13
    7