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

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

기벡을 안배운다고?

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

요약
N개의 2차원 정수 벡터가 주어질 때 내적이 0인 순서쌍의 개수를 구한다.
난이도

보통10점 중 5점

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

문제

민우는 22학번이다. 2022학년도 수능 수학에 선택 과목 제도가 생기면서 선택 과목으로 미적분을 택한 민우는 기하와 벡터 과목의 아름다움을 알지 못했다. 기하와 벡터를 독학으로 통달한 민우는 2023 APC를 통해서라도 기하와 벡터의 아름다움을 설파하고자 한다. 2차원 평면상의 두 벡터 v_1=(x_1,y_1)v\_{1}=\left( x\_{1},y\_{1} \right)와 v_2=(x_2,y_2)v\_{2}=\left( x\_{2},y\_{2} \right)의 내적(dot product)은 다음과 같이 정의된다. v_1⋅v_2=x_1x_2+y_1y_2v\_{1}\cdot v\_{2}=x\_{1}x\_{2}+y\_{1}y\_{2}

만약 두 벡터의 내적 값이 00이라면, 2차원 평면상에서 두 벡터는 수직임을 의미한다.

NN개의 2차원 벡터가 주어질 때, 1≤i\<j≤N1\leq i\<j\leq N이면서 두 벡터 v_iv\_{i}와 v_jv\_{j}가 수직인 순서쌍 (i,j)(i,j)의 개수를 구하시오.

입력

첫째 줄에 NN이 주어진다. (1≤N≤200,000)(1\leq N \leq 200\\,000)

둘째 줄부터 NN개 줄에 걸쳐 벡터 v_i=(x_i,y_i)v\_{i}=\left(x\_{i},y\_{i}\right)의 x_ix\_{i}와 y_iy\_{i}가 공백으로 구분되어 주어진다. (−109≤x_i,y_i≤109)(-10^{9}\leq x\_{i},y\_{i} \leq 10^{9})

입력으로 주어지는 모든 값은 정수다.

출력

1≤i<j≤N1\leq i < j \leq N을 만족하는 정수 ii와 jj에 대하여, 두 벡터 v_iv\_{i}와 v_jv\_{j}가 서로 수직인 순서쌍 (i,j)(i,j)의 개수를 출력하시오.

예제1

  1. 예제 1

    입력
    9
    1 2
    3 5
    3 6
    2 -1
    -4 2
    4 -2
    -5 0
    -8 -16
    0 3
    
    예상 출력
    10