터치 앤 리턴
시간 제한2초메모리 제한1024 MB
지점 수 N은 20 이하, 체력 K가 주어질 때 1번 지점에서 출발해 돌아오는 경로를 여러 번 반복하며 (방문한 서로 다른 지점 수 - 1)^2 점수의 최댓값을 구한다.
문제
용준이는 터치 앤 리턴이라는 게임을 하기로 했습니다.
게임의 규칙은 다음과 같습니다.
- 체력을 소모하여 현재 있는 지점에서 통로로 연결된 다른 지점으로 이동할 수 있습니다. 단, 현재 갖고 있는 체력보다 통로의 체력 소모량이 더 큰 경우 이동할 수 없습니다.
- 매 턴 용준이는 번 지점에서 출발하여 원하는 만큼 지점을 방문한 뒤, 다시 번 지점으로 돌아와야 합니다. 한 턴 내에서 같은 지점을 중복하여 방문할 수 있습니다.
- 번 지점에 돌아오면, 무조건 이번 턴에 방문한 서로 다른 지점의 수 로 계산된 점수를 획득하고, 한 턴이 종료됩니다.
- 체력이 미만이 되는 순간, 게임이 종료됩니다. 즉, 체력이 부족하여 원점에 돌아오지 못한 경우, 점수를 획득할 수 없습니다.
예를 들어, 경로가 이라면, 방문한 지점은 이고, 번 지점을 제외하면 개의 지점이므로 획득하는 점수는 점이 됩니다.
지점의 이름은 부터 까지의 정수이며, 지점 간 이동에는 체력이 소모됩니다. 그리고, 주어진 체력 이내에서, 이러한 경로 탐색을 여러 번 할 수 있습니다.
목표는 주어진 체력으로 얻을 수 있는 최대 점수를 구하는 것입니다. 이때, 모든 체력을 사용할 필요는 없습니다.
입력
첫째 줄에 지점의 수 , 두 지점을 잇는 통로의 수 , 용준이의 체력 가 주어집니다. ( , , 는 정수)
다음 개 줄에 가 주어지는데, 이는 지점 와 지점 사이의 통로를 이용할 경우 소모되는 체력이 정수 인 통로를 나타냅니다. 이 통로에서는 양방향 통행이 가능합니다. ()
출력
주어진 체력으로 얻을 수 있는 최대 점수를 출력해 주세요.