¿La página no carga? Prueba haciendo clic aquí.
Placeholder

#1500

트리플 1s 64MB

Problemas

1번부터 N번의 번호가 붙은 점들이 15,000 x 15,000 크기의 2차원 평면에 있다. 

점들의 위치는 정수 좌표로 정해져 있다(즉, 각 점들의 x, y 좌표는 0이상 15,000 이하의 정수로 이뤄진다.) 

이러한 점들이 주어졌을 때, 선택한 임의의 3개의 점이 일직선으로 잇는게 가능할 경우 이러한 점들을 triple이라고 한다. 

이러한 triple이 평면상에 몇 개가 있는지 알아보는 프로그램을 작성하라. 

하나의 점은 여러개의 트리플에 속할 수 있으며, 하나의 점만을 가지고 트리플을 만드는 경우는 없음을 유의하자.


Entrada

입력의 첫 번째 줄에는 점의 개수 N(1≤N≤770)가 입력된다. 그리고 두 번째 줄부터 N+1번째 줄에는 각 점들의 x, y 좌표가 입력되며, 입력되는 순으로 점1, 점2, ..., 점N으로 번호가 매겨진다.


Salida

입력의 첫 번째 줄에는 트리플의 개수를 출력한다. 그리고 개수만큼의 트리플을 출력하는데, 각 트리플에 대한 정보는 3개의 숫자 - 각 점들의 번호 - 로 이뤄져야 한다.

또한 출력되는 트리플은 사전순으로 출력되어야 한다. 즉 1 3 4 보다 1 2 4가 우선되어 출력되어야 한다.


Ejemplo

8

0 0
0 4
1 2
2 4
4 3
4 5
5 1
6 5
1

1 3 4

Debes iniciar sesión para escribir código.