마라톤 대회

1번에서 N번까지의 단순 경로 중 각 도로의 비용 C*(P-T)^2 (P>T일 때)의 합이 예산 K 이하가 되도록 하는 가장 큰 참가자 수 P를 구한다.

보통7최단 경로그래프이분 탐색면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

마라톤 대회가 열린다. 참가자는 미리 정해진 코스를 따라 달려야 하고, 코스는 아직 정해지지 않았다. 대회가 열리는 곳은 NN개의 교차로와 MM개의 양방향 도로로 이루어져 있다. 도로는 두 교차로를 잇는다. 교차로에는 11번부터 NN번까지, 도로에는 11번부터 MM번까지 번호가 붙어 있다.

마라톤 코스는 교차로의 나열 (V1,V2,,Vk)(V_1, V_2, \dots, V_k)로 나타낸다. kk는 코스에 들어가는 교차로의 개수이다. 시작 교차로 V1V_1은 항상 11번 교차로, 마지막 교차로 VkV_k는 항상 NN번 교차로여야 한다. 같은 교차로가 두 번 이상 나오면 안 되고, 연속한 두 교차로는 도로로 이어져 있어야 한다.

대회를 열려면 코스에 들어가는 도로를 통제해야 한다. 도로를 통제하는 데 비용을 지불할 수도 있고 지불하지 않을 수도 있다. 각 도로에는 통제 비용 CC와 지불 인원 상한선 TT가 있다. 마라톤에 참가하는 사람의 수를 PP라고 하면, PTP \le T인 도로는 비용을 지불하지 않고 통제한다. P>TP > T인 도로를 통제하는 비용은 C×(PT)2C \times (P-T)^2원이다. 코스의 통제 비용은 코스에 들어가는 도로의 비용을 모두 더한 값이다.

대회 예산 중에서 도로 통제에 지불할 수 있는 금액은 최대 KK원이다. 코스는 참가할 수 있는 사람이 가장 많아지도록 정하려고 한다. 예산 안에서 코스를 적절히 정했을 때 참가할 수 있는 사람 수의 최댓값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 교차로의 수 NN, 도로의 수 MM, 예산 KK가 주어진다. (2N100,0002 \le N \le 100{,}000, N1M100,000N-1 \le M \le 100{,}000, 1K1091 \le K \le 10^9)

둘째 줄부터 MM개의 줄에 도로의 정보가 한 줄에 하나씩 주어진다. 도로의 정보는 네 정수 AA, BB, CC, TT (1A<BN1 \le A < B \le N, 1C,T1,0001 \le C, T \le 1{,}000)로 이루어진다. AABB는 도로가 잇는 두 교차로의 번호이고, CCTT는 그 도로를 통제하는 비용을 계산하는 데 쓰는 값이다.

임의의 두 교차로를 잇는 도로는 많아야 한 개이고, 항상 답을 구할 수 있는 경우만 입력으로 주어진다.

출력

예산 안에서 코스를 적절히 정했을 때 참가할 수 있는 사람 수의 최댓값을 첫째 줄에 출력한다.

설명

코스에 도로 두 개가 들어가고 두 도로의 값이 각각 (C,T)=(5,1)(C, T) = (5, 1), (C,T)=(1,5)(C, T) = (1, 5)라고 하자. 참가자가 3명이면 통제 비용은 5×(31)2+0=205 \times (3-1)^2 + 0 = 20원이고, 4명이면 5×(41)2+0=455 \times (4-1)^2 + 0 = 45원이며, 6명이면 5×(61)2+1×(65)2=1265 \times (6-1)^2 + 1 \times (6-5)^2 = 126원이다. 예산이 25원이면 이 코스로는 3명까지 참가한다.