아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

카카오톡

시간 제한2초메모리 제한1024 MB

요약
서로 다른 N개의 직선이 주어질 때, 한 점에서 만나는 직선 쌍의 개수를 센다. 평행하거나 일치하는 직선은 세지 않는다.
난이도

어려움10점 중 8점

유형
기하, 해시맵, 수학, 정렬
정답자
아직 제출이 없습니다

문제

카카오톡은 주식회사 카카오가 2010년 3월 18일 서비스를 시작한 글로벌 모바일 인스턴트 메신저로, 2020년 기준 4 0004\,000만 명의 사용자가 등록돼 있고 시장 점유율이 9696%로 사실상 거의 모든 국민이 사용할 정도로 점유율이 매우 높다.

카카오의 지원하에 국렬이는 카카오톡의 특이한 오픈톡방에 대한 실험을 진행했다. 그에 대한 실험 내용은 다음과 같다. 실험에 대한 내용은 다음과 같다.

  1. NN명의 유저가 모인 특이한 오픈톡방이 있다.
  2. 특이한 오픈톡방은 하나의 좌표 평면으로 구성되어 있으며, 각각 유저들은 좌표 평면 상의 서로 다른 직선 11개를 할당받는다.
  3. 각 유저들이 서로의 톡을 보기 위해서는 각 유저들의 직선이 서로 만나야 한다. 서로 만나지 않는다면 서로의 톡을 볼 수 없다.

이때, 국렬이는 특이한 오픈톡방 내에서 서로의 톡을 확인할 수 있는 유저의 쌍의 수를 구해야 한다. 국렬이는 너무 게을러서 이 실험을 대회에 떠넘겨버렸다. 당신은 상금을 위해 이 문제를 해결해야 한다.

입력

다음과 같이 입력이 주어진다.

NN

a1a_1 b1b_1 c1c_1

...

aNa_N bNb_N cNc_N

출력

서로의 톡을 확인할 수 있는 유저의 쌍의 수를 출력하여라.

제한

  • NN은 오픈 톡방에 모인 사람의 수를 의미하는 양의 정수다. (1≤N≤500 0001 \le N \le 500\,000)
  • aix+biy+ci=0a_i x + b_i y + c_i = 0은 ii번째 유저가 할당받은 직선이다. (1≤i≤N1 \le i \le N)
  • −109≤ai,bi,ci≤109-10^9 \le a_i, b_i, c_i \le 10^9 (1≤i≤N1 \le i \le N)
  • (ai,bi)≠(0,0)(a_i, b_i) \ne (0,0) (1≤i≤N1 \le i \le N)
  • 다수의 유저들이 동일한 직선을 할당받는 경우는 존재하지 않는다.
  • 입력으로 주어지는 모든 수는 정수다.

예제2

  1. 예제 1

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

    입력
    3
    1 2 3
    -1 -2 3
    1 -2 3
    
    예상 출력
    2