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

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

특수 능력

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

요약
가중치가 있는 유향 그래프에서 1번 정점에서 N번 정점까지 이동할 때, 최대 C번 간선의 가중치를 음수로 바꿀 수 있을 때 최소 비용을 구한다.
난이도

어려움10점 중 8점

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

문제

NN개의 정점과 MM개의 간선으로 이루어진 방향 그래프가 있다. 정점에는 1번부터 NN번까지 번호가 매겨져 있고, 간선마다 가중치가 붙어 있다. 두 정점 사이에 간선이 여러 개 있을 수도 있고, 시작점과 도착점이 같은 간선이 있을 수도 있다.

성원이는 1번 정점에서 출발한다. 간선을 한 번 지날 때마다 그 간선의 가중치만큼 비용이 든다. 같은 간선을 여러 번 지나도 된다.

성원이에게는 특수 능력이 있다. 간선을 지나는 순간에 이 능력을 쓰면 그 간선을 지나는 비용이 가중치에 −1-1을 곱한 값이 된다. 능력을 써서 지나간 간선은 곧바로 원래 가중치로 돌아오므로, 같은 간선을 능력 없이 다시 지나면 원래 가중치만큼 비용이 든다. 능력은 이동 전체에서 최대 CC번까지 쓸 수 있다.

1번 정점에서 출발해 NN번 정점에서 이동을 마칠 때 드는 비용의 합이 가장 작아지는 값을 구하는 프로그램을 작성하시오. 이동 도중에 NN번 정점을 지나쳤다가 나중에 다시 돌아와도 되고, 능력을 쓸 수 있는 횟수가 남은 상태로 NN번 정점에 도착해도 된다.

입력

첫째 줄에 정점의 개수 NN, 간선의 개수 MM, 특수 능력을 쓸 수 있는 최대 횟수 CC가 주어진다. (1≤N≤501 \le N \le 50, 1≤M≤25001 \le M \le 2500, 0≤C≤10000 \le C \le 1000)

둘째 줄부터 MM개의 줄에 간선의 정보가 한 줄에 하나씩 주어진다. 각 줄에는 간선의 시작 정점 uu, 도착 정점 vv, 가중치 ww가 공백으로 구분되어 주어진다. 간선은 uu에서 vv 방향으로만 지날 수 있다. (1≤u,v≤N1 \le u, v \le N, 0≤w≤1000000 \le w \le 100000)

1번 정점에서 NN번 정점으로 갈 수 있는 그래프만 입력으로 주어진다.

출력

첫째 줄에 1번 정점에서 NN번 정점까지 이동하는 최소 비용을 출력한다.

예제4

  1. 예제 1

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

    입력
    1 1 1000
    1 1 100
    
    예상 출력
    -100000
    
  3. 예제 3

    입력
    2 3 2
    1 2 6
    1 2 1
    2 1 4
    
    예상 출력
    -9
    
  4. 예제 4

    입력
    2 1 100
    1 2 1000
    
    예상 출력
    -1000