만드는 중입니다

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

두 직원에게 작업 배정하기

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

요약
n개의 작업을 두 직원에게 나누고 실행 순서를 정해, 기술 점수가 쌓일수록 커지는 총 이익을 최대화하는 문제입니다.
난이도

어려움10점 중 8점

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

문제

하나코는 직원이 두 명인 작은 회사의 대표이다. 현재 nn개의 작업이 있으며, 직원들에게 작업을 시켜 이익을 얻으려 한다. 직원은 작업을 통해 기술을 키울 수 있고, 기술 점수가 높을수록 같은 작업에서 더 많은 이익을 얻는다. 따라서 작업을 적절한 직원에게, 적절한 순서로 배정하는 것이 총이익을 최대화하는 데 중요하다.

직원 ii와 작업 jj의 쌍마다 음이 아닌 정수 vi,jv_{i,j}와 si,js_{i,j}가 정해져 있다. 여기서 vi,jv_{i,j}는 작업 적합도이고, si,js_{i,j}는 기술 점수 증가량이다. 기술 점수가 pp인 직원 ii가 작업 jj를 완료하면 p×vi,jp \times v_{i,j}의 이익을 얻고, 기술 점수는 p+si,jp + s_{i,j}로 오른다. 처음에는 두 직원의 기술 점수가 모두 p0p_0이다.

기술 점수는 직원마다 따로 계산된다. 한 직원이 작업을 완료해도 다른 직원의 기술 점수는 변하지 않는다. 각 작업은 한 명의 직원이 정확히 한 번만 수행해야 한다. 작업을 수행하는 순서는 자유롭게 정할 수 있다.

입력

입력은 다음 형식의 테스트 케이스 하나로 주어진다.

nn p0p_0

s1,1s_{1,1} ⋯\cdots s1,ns_{1,n}

s2,1s_{2,1} ⋯\cdots s2,ns_{2,n}

v1,1v_{1,1} ⋯\cdots v1,nv_{1,n}

v2,1v_{2,1} ⋯\cdots v2,nv_{2,n}

모든 입력은 음이 아닌 정수이다. 작업의 수 nn은 1≤n≤1001 \le n \le 100을 만족한다. 초기 기술 점수 p0p_0은 0≤p0≤1080 \le p_0 \le 10^8을 만족한다. 각 si,js_{i,j}는 0≤si,j≤1060 \le s_{i,j} \le 10^6을, 각 vi,jv_{i,j}는 0≤vi,j≤1060 \le v_{i,j} \le 10^6을 만족한다.

출력

최대 총이익을 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    4 0
    10000 1 1 1
    1 1 10000 1
    1 10000 1 1
    1 1 1 10000
    
    예상 출력
    200000000
    
  2. 예제 2

    입력
    3 1
    1 1 1
    2 2 2
    2 2 2
    1 1 1
    
    예상 출력
    12