아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

최소 비용 유량의 역습

시간 제한3초메모리 제한256 MB

요약
두 구간 선형 비용을 가진 방향 간선을 이용해 도시 s에서 도시 t까지 화물 f단위를 최소 총비용으로 운송합니다.
난이도

어려움10점 중 9점

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

문제

플로라는 프리랜서 전서구다. 실력이 뛰어나서 감당할 수 없을 만큼 배달 의뢰가 몰린다. 혼자 다 처리할 수는 없으므로 일부를 전서구 운송 회사에 맡기기로 했다.

도시는 00번부터 N−1N-1번까지 NN개 있다. 플로라가 맡기려는 일은 화물 ff단위를 도시 ss에서 도시 tt로 옮기는 것이다. 회사에는 전서구가 MM마리 있다. ii번 전서구는 도시 sis_i에서 도시 tit_i로 화물을 옮기고, 반대 방향인 tit_i에서 sis_i로는 옮기지 못한다. ii번 전서구가 화물 uu단위를 옮기는 비용은 u≤diu \le d_i이면 uaiu a_i이고, 그렇지 않으면 diai+(u−di)bid_i a_i + (u - d_i) b_i다. 전서구 한 마리가 옮기는 양에는 제한이 없다. 한 전서구가 여러 번에 나누어 옮겨도 비용은 그 전서구가 옮긴 총량으로 계산한다.

플로라는 전체 비용을 최소로 하려고 한다. 최소 비용을 구하라.

입력

첫째 줄에 정수 NN (2≤N≤1002 \le N \le 100), MM (1≤M≤10001 \le M \le 1000), ss (0≤s≤N−10 \le s \le N-1), tt (0≤t≤N−10 \le t \le N-1), ff (1≤f≤2001 \le f \le 200)가 공백으로 구분되어 주어진다. s≠ts \ne t다.

다음 MM개 줄에는 ii번 전서구의 정보인 정수 sis_i (0≤si≤N−10 \le s_i \le N-1), tit_i (0≤ti≤N−10 \le t_i \le N-1), aia_i (0≤ai≤10000 \le a_i \le 1000), bib_i (0≤bi≤10000 \le b_i \le 1000), did_i (1≤di≤2001 \le d_i \le 200)가 주어진다. ai<bia_i < b_i인 전서구는 많아야 한 마리이고, 나머지 전서구는 모두 ai>bia_i > b_i를 만족한다.

출력

화물 ff단위를 도시 ss에서 도시 tt로 옮기는 최소 비용을 한 줄에 출력한다. 옮길 수 없으면 Impossible을 출력한다.

예제5

  1. 예제 1

    입력
    2 2 0 1 5
    0 1 3 0 3
    0 1 2 1 6
    
    예상 출력
    9
    
  2. 예제 2

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

    입력
    2 1 0 1 1
    1 0 1 0 1
    
    예상 출력
    Impossible
    
  4. 예제 4

    입력
    2 2 0 1 2
    0 1 5 1 2
    0 1 6 3 1
    
    예상 출력
    9
    
  5. 예제 5

    입력
    3 3 0 2 4
    0 2 3 4 2
    0 1 4 1 3
    1 2 3 1 1
    
    예상 출력
    14