휴가 계획

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

에어 보비니아는 소가 사는 농장 NN개를 항공편으로 잇는다. 농장에는 11번부터 NN번까지 번호가 붙어 있고, 그중 11번부터 KK번까지가 허브다.

지금 운항하는 단방향 항공편은 MM개다. ii번 항공편은 농장 uiu_i에서 농장 viv_i로 가고, 요금은 did_i달러다.

에어 보비니아는 편도 여행 QQ건을 접수했다. ii번 여행은 농장 aia_i에서 출발해 농장 bib_i에서 끝난다. 여행 경로는 항공편을 원하는 대로 이어 붙여 만들고, 같은 농장을 여러 번 지나도 된다. 다만 경로에 허브가 적어도 하나 들어가야 한다. 출발 농장이나 도착 농장이 허브인 경우도 이 조건을 만족한다. 출발 농장과 도착 농장이 같으면 항공편을 한 번도 타지 않는 경로도 경로로 치며, 이때는 그 농장이 허브여야 조건을 만족한다.

이 조건 때문에 aia_i에서 bib_i로 가는 경로가 아예 없을 수 있다. 경로가 있는 여행마다 최소 요금을 구하라.

1N2001 \le N \le 200, 1K1001 \le K \le 100, KNK \le N, 1M100001 \le M \le 10\,000, 1di10000001 \le d_i \le 1\,000\,000, 1Q100001 \le Q \le 10\,000이다. 같은 두 농장을 잇는 항공편이 여러 개 있을 수 있고, 출발 농장과 도착 농장이 같은 항공편도 있을 수 있다.

입력

  • 첫째 줄에 NN, MM, KK, QQ가 주어진다.
  • 다음 MM개 줄 중 ii번째 줄에는 ii번 항공편의 uiu_i, viv_i, did_i가 주어진다.
  • 다음 QQ개 줄 중 ii번째 줄에는 ii번 여행의 aia_i, bib_i가 주어진다.

출력

  • 첫째 줄에 유효한 경로가 있는 여행의 개수를 출력한다.
  • 둘째 줄에 그 여행들의 최소 요금을 모두 더한 값을 출력한다. 유효한 경로가 있는 여행이 하나도 없으면 00을 출력한다.

힌트

예제 입력에는 농장이 세 개 있고 11번 농장이 허브다. 농장 33에서 농장 11로 가는 1010달러짜리 항공편이 있고, 나머지 항공편도 같은 방식으로 읽는다.

농장 33에서 농장 22로 가는 가장 싼 경로는 농장 11을 거치며 요금은 10+7=1710 + 7 = 17이다. 농장 22에서 출발하는 항공편이 없으므로 농장 22에서 농장 33으로 가는 경로는 없다. 농장 11에서 농장 22로 가는 경로는 하나뿐이고 요금은 77이다.