가중치가 있는 방향 그래프와 각 시장의 K개 품목 매매 가격이 주어질 때, 한 번에 한 품목만 거래하며 닫힌 보행을 돌 때 이익을 시간으로 나눈 값의 최댓값을 구해 내림한 정수를 출력한다.
어려움9그래프최단 경로이분 탐색동적 계획법아직 제출이 없습니다시간 제한2초메모리 제한512 MB오스트레일리아 내륙을 오래 여행한 끝에 당신은 작은 배낭 하나만 메고 코바라는 도시에 도착했습니다. 시장의 활기에 매료된 당신은 상인이 되어 이곳에 정주하기로 했습니다. 코바에는 1부터 N까지 번호가 붙은 N개의 시장이 있으며, 시장은 이동에 정해진 시간이 걸리는 M개의 일방통행 오솔길로 연결되어 있습니다.
코바의 시장에서는 1부터 K까지 번호가 붙은 K가지 물품이 거래됩니다. 각 시장은 물품마다 매입가와 매도가를 정해 둡니다. 모든 시장이 모든 물품을 다루는 것은 아니며, 특정 물품은 매입만 가능하거나 매도만 가능할 수도 있습니다. 판매 중인 물품은 재고가 무한하다고 가정하고, 매입 의사가 있는 시장도 횟수 제한 없이 계속 사들인다고 가정합니다.
빨리 돈을 벌기 위해 가장 효율적인 수익 순환을 찾고자 합니다. 수익 순환은 빈 배낭으로 어떤 시장 v에서 출발해 오솔길을 따라 이동하면서 물품을 사고팔고, 다시 빈 배낭으로 v로 돌아오는 도보 경로입니다. 같은 시장이나 오솔길을 여러 번 지나도 됩니다. 물품을 사면 즉시 배낭에 넣어야 하며, 배낭은 한 번에 최대 한 개의 물품만 담을 수 있습니다. 판매 중인 물품은 보유 금액과 무관하게 항상 살 수 있다고 가정하고, 들고 있지 않은 물품은 팔 수 없습니다.
수익 순환의 수익은 물품을 팔아 얻은 금액에서 사들이는 데 쓴 금액을 뺀 값입니다. 소요 시간은 경로에 포함된 오솔길 이동 시간의 합입니다. 효율은 수익을 소요 시간으로 나눈 값입니다. 물품을 전혀 거래하지 않은 순환의 효율은 0입니다.
이동 시간이 양수인 모든 수익 순환 중에서 효율의 최댓값을 구하고, 소수점 이하는 버린 정수를 보고해야 합니다. 그런 순환이 존재하지 않으면 0을 보고합니다.
프로그램은 표준 입력에서 읽어야 합니다.
첫째 줄에는 시장의 수와 오솔길의 수와 물품의 수를 나타내는 세 정수 N, M, K가 주어집니다.
이어서 N개의 줄이 주어집니다. 이 중 i번째 줄에는 시장을 설명하는 2K개의 정수 Bi,1,Si,1,Bi,2,Si,2,…,Bi,K,Si,K가 주어집니다. 모든 1≤j≤K에 대해 정수 쌍 Bi,j와 Si,j는 시장 i에서 물품 j를 사거나 파는 가격을 각각 나타냅니다. 살 수 없거나 팔 수 없는 물품은 자리 표시자로 −1이 사용됩니다.
이어서 M개의 줄이 주어집니다. 이 중 p번째 줄에는 시장 Vp에서 다른 시장 Wp로 이동하며 Tp분이 걸리는 일방통행 오솔길을 설명하는 세 정수 Vp, Wp, Tp가 주어집니다.
프로그램은 표준 출력에 써야 합니다.
모든 수익 순환 중 최대 효율을 소수점 이하는 버려서 하나의 정수로 출력합니다.
모든 하위 과제에서 1≤N≤100, 1≤M≤9900, 1≤K≤1000이며, 사고팔 수 있는 모든 물품에 대해 모든 1≤i≤N과 모든 1≤j≤K에서 0<Si,j≤Bi,j≤1000000000입니다. 또한 모든 1≤p≤M에 대해 Vp=Wp이고 1≤Tp≤10000000이며, 서로 다른 두 오솔길 1≤p<q≤M에 대해 순서쌍 (Vp,Wp)와 (Vq,Wq)가 같은 경우는 존재하지 않습니다.
표본 사례에는 1에서 2를 거쳐 3을 지나 1로 돌아오는 순환과 1에서 4를 거쳐 3을 지나 1로 돌아오는 순환, 두 가지 순환을 고려합니다.
첫 번째 순환은 이동에 3+3+1=7분이 걸립니다. 이 순환에서 가장 수익이 큰 거래는 시장 1에서 물품 2를 매입하고 시장 2에서 매도한 뒤, 시장 2에서 물품 1을 매입해 시장 3을 거쳐 운반하고 마지막으로 시장 1에서 매도하는 것입니다. 이에 따라 수익은 −5+15−6+9=13이며, 13/7을 내림하면 효율은 1입니다.
두 번째 순환은 이동에 1+1+1=3분이 걸립니다. 가장 수익이 큰 거래는 시장 1에서 물품 2를 매입해 시장 4에서 매도한 뒤 시장 3을 거쳐 시장 1로 돌아오는 것으로, 수익은 −5+11=6이며 6/3=2이므로 효율은 2입니다.
따라서 코바에서 가능한 모든 수익 순환 중 가장 좋은 효율은 2입니다.