만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

자전거 경주

시간 제한8초메모리 제한256 MB

요약
한 도시를 주인 도시로 정하고, 그 도시를 공유하는 삼각형 두 개를 나머지 도시가 겹치지 않게 찾습니다. 여섯 도로 값의 합이 최대가 되도록 구하고, 불가능하면 -1을 출력합니다.
난이도

보통10점 중 7점

유형
그래프, 완전 탐색, 그리디
정답자
아직 제출이 없습니다

문제

위대한 자전거 경주 시기가 다가오고 있다. 연례 스포츠 대회 주최 측은 참가자가 달릴 코스를 골라야 한다. 나라에는 nn개의 도시와 mm개의 양방향 도로가 있다. 주최 측은 개최 도시를 하나 고른다. 경주는 이틀 동안 진행된다. 매일 선수는 개최 도시에서 출발해 중간 도시 두 곳을 거쳐 다시 개최 도시로 돌아온다. 이틀에 걸쳐 중간 도시가 겹치면 안 되므로, 경주는 서로 다른 도시 다섯 곳과 도로 여섯 개를 지난다. 각 도로 ii에는 정수 매력도 aia_i가 있으며, 코스의 매력도는 여섯 도로 값의 합이다. 조건을 만족하는 경주를 열 수 있는지 판단하고, 가능하다면 코스 매력도의 최댓값을 구하라.

입력

첫 줄에 도시 수 nn과 도로 수 mm이 주어진다 (5≤n≤1000005 \le n \le 100000, 6≤m≤1000006 \le m \le 100000). 다음 mm개 줄에는 도로 ii가 잇는 두 도시 uiu_i, viv_i와 매력도 aia_i가 주어진다 (1≤ui,vi≤n1 \le u_i, v_i \le n, ui≠viu_i \ne v_i, 1≤ai≤1000001 \le a_i \le 100000). 같은 도시 쌍을 잇는 도로는 없다.

출력

조건을 만족하는 코스가 없으면 −1-1을 출력한다. 그렇지 않으면 가능한 코스 매력도 합의 최댓값을 출력한다.

힌트

첫 번째 예시에서 가장 좋은 선택 중 하나는 도시 5를 개최 도시로 삼고, 5 → 1 → 2 → 5 → 3 → 4 → 5 순서로 달리는 것이다.

예제2

  1. 예제 1

    입력
    6 9
    1 2 3
    2 3 1
    3 4 2
    4 5 1
    3 5 7
    2 5 2
    1 5 3
    4 6 2
    5 6 1
    
    예상 출력
    18
    
  2. 예제 2

    입력
    6 6
    1 3 2
    1 2 2
    2 3 4
    3 4 1
    3 6 6
    1 4 8
    
    예상 출력
    -1