공항
시간 제한3초메모리 제한256 MB
재배치 비행과 공항 검사 시간을 고려해 모든 정기 항공편을 운항하는 데 필요한 최소 비행기 대수를 구합니다.
문제
어떤 항공사가 1번부터 n번까지 번호가 붙은 공항 n개에서 항공편을 운항한다. 공항 i에서 공항 j로 가는 비행 시간은 이고, 바람과 지형 때문에 와 가 다를 수 있다.
비행기는 공항 i에 착륙하면 만큼 점검을 받아야 다시 이륙할 수 있다. 점검 시간은 착륙한 공항에만 달려 있고 그 비행기가 어디에서 왔는지와는 무관하다. 기체를 옮기려고 항공사가 임의로 추가한 비행으로 착륙했을 때도 점검을 똑같이 받는다.
항공사는 정규편 m개를 모두 운항해야 한다. 번째 정규편은 정확히 시각 에 공항 를 출발해 공항 로 곧장 간다. 기체를 옮기는 비행은 정규편 외에 얼마든지 추가할 수 있고, 한 기체가 그런 비행을 여러 번 연달아 해도 된다.
정규편 를 운항한 기체가 이어서 정규편 를 운항하려면 시각 까지 공항 에 돌아와 점검을 마쳐야 한다. 출발 시각이 같은 정규편 두 개를 한 기체가 모두 운항할 수는 없다.
정확히 적으면 이렇다. 정규편 를 마친 기체가 다시 이륙할 수 있게 되는 시각은 이다. 공항 에서 공항 로 기체를 옮기는 데 드는 최소 시간을 라 하자. 는 거쳐 가는 경로의 비행 시간과 착륙하는 공항마다의 점검 시간을 모두 더한 값 중 가장 작은 값이고, 이다. 한 기체가 다음에 를 운항할 수 있는 조건은 이면서 인 것이다.
정규편 m개를 모두 운항하려면 비행기가 최소 몇 대 필요한지 구하라.
입력
첫째 줄에 정수 과 이 공백으로 구분되어 주어진다. ()
둘째 줄에 정수 이 공백으로 구분되어 주어진다. ()
다음 개 줄에는 각각 정수 개가 공백으로 구분되어 주어진다. 번째 줄의 번째 정수가 이다. () 모든 에 대해 이지만, 일 때 와 는 다를 수 있다.
다음 개 줄에는 각각 정수 세 개 , , 가 공백으로 구분되어 주어진다. (, , ) 시각 에 공항 를 출발해 공항 로 곧장 가는 정규편을 항공사가 운항해야 한다는 뜻이다.
출력
정규편 개를 모두 운항하는 데 필요한 비행기의 최소 대수를 한 줄에 출력한다.