만드는 중입니다

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

방향

시간 제한4초메모리 제한512 MB

요약
각 티켓의 방향 벡터를 음이 아닌 배수로 써서 모든 점으로 이동할 수 있도록 최소 비용을 구하고, 불가능하면 -1을 출력합니다.
난이도

어려움10점 중 8점

유형
기하, 정렬, 동적 계획법
정답자
아직 제출이 없습니다

문제

처음에 스누케는 전혀 움직일 수 없다. 티켓이 nn장 있고, ii번째 티켓의 가격은 pip_i이다. 스누케가 ii번째 티켓을 사면, 모든 점 (x,y)(x, y)와 음이 아닌 수 tt에 대해 (x,y)(x, y)에서 (x+tai,y+tbi)(x + t a_i, y + t b_i)로 이동할 수 있다. 스누케는 임의의 두 점 사이를 오갈 수 있도록 티켓을 사려고 한다. 반드시 사야 하는 티켓의 최소 총 가격을 구하라.

입력

첫 줄에 정수 nn이 주어진다 (1≤n≤2⋅1051 \le n \le 2 \cdot 10^5). 이어서 nn개의 줄이 주어지며, ii번째 줄에는 정수 aia_i, bib_i, pip_i가 주어진다 (−109≤ai,bi≤109-10^9 \le a_i, b_i \le 10^9, 1≤pi≤1091 \le p_i \le 10^9).

출력

두 점 사이를 임의로 이동할 수 있도록 반드시 사야 하는 티켓의 최소 총 가격을 출력한다. 불가능하면 -1을 출력한다.

힌트

예를 들어 1번, 3번, 6번 티켓을 사면 된다.

예제2

  1. 예제 1

    입력
    7
    0 3 1
    0 3 2
    1 -1 2
    0 0 1
    -2 4 1
    -4 0 1
    2 1 2
    
    예상 출력
    4
    
  2. 예제 2

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