염소

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

요약
모든 염소를 한 번에 볼 수 있는 염소는 180도 반평면을 임의로 회전시킬 수 있다. 세 마리의 선택에 대해 세 번 모두 표식이 되는 염소 수를 구한다.
난이도

어려움10점 중 8점

유형
기하, 정렬, 투 포인터, 누적 합
정답자
아직 제출이 없습니다

문제

넓은 평원에 NN 마리의 염소들이 흩어져서 한가로이 풀을 뜯어먹고 있다. 한 자리에 두 마리 이상의 염소가 있는 경우는 없다. 염소들은 게을러서 자리를 옮기지는 않고 가끔 제자리에서 돌기만 한다 사실 이 염소들은 모두 로봇으로 걷지는 못하고 제자리에서 회전만 가능한 것이었다. 또한 염소들의 코는 LED등으로 원격에서 점등이 가능하며, 염소들의 눈은 고성능 카메라로 카메라에 담기는 영상은 실시간으로 원격에서 확인할 수 있고 원하는 장면을 저장할 수도 있다. 염소의 눈에는 자신의 코도 보이며, 투시 기능도 있어 염소들이 겹쳐서 보이더라도 몇 마리가 있는지 파악이 가능하다. 또한 눈의 좌우 시야각은 180∘180^\circ로 180∘180^\circ 경계 상에 있는 것까지 눈에 보인다.

염소들의 위치에 따라 한번에 NN 마리를 볼 수 있는 염소도 있고, 경우에 따라 어떤 방향을 보더라도 한번에 NN 마리를 볼 수 없는 염소도 있을 수 있다. 예를 들어, 아래 그림과 같이 00번부터 55번까지 여섯 마리의 염소가 주어질 때, 55번 염소는 한번에 여섯 마리를 볼 수 있지만 22번 염소는 어떤 방향을 보더라도 한번에 여섯 마리를 모두 볼 수는 없다.

특별한 실험을 위해 한번에 NN 마리를 볼 수 있는 서로 다른 두 염소와 함께 나머지 모든 염소들 중 임의로 한 염소를 선택한다. 선택된 세 염소는 코를 점등하여 어디서나 위치를 확인 할 수 있도록 한다. 선택된 세 염소의 눈에 담기는 영상을 지켜보다가 점등된 세 염소가 한 화면에 보이는 장면을 각 염소마다 하나씩 저장한다. 저장된 세 장면을 하나씩 보며, 점등된 세 염소와 함께 점등된 다른 두 염소 사이(경계 포함)에 있는 모든 염소에 특별한 표식을 한다. 이 표식은 특별한 실험을 위한 것으로, NN 마리 염소 중 세 번 모두 표식이 된 염소들의 마릿수를 구하는 것이 이 실험의 목표이다.

예를 들어, 전체 여섯 마리 염소 중 선택된 세 염소를 붉은 점으로 표시한 경우, 아래 그림은 각 염소를 기준으로 특별한 표식이 된 염소를 나타낸다. (물론 각 그림은 저장된 장면 자체는 아니다.) 이 경우 세 번 모두 표식이 된 염소들의 마릿수는 44이다.

여러분은 특별한 실험을 위해 다음 22가지 함수를 구현해야만 한다.

  • void init( int x[], int y[] ) ; 최초에 호출되며 오직 한번만 호출되는 함수이다. xx와 yy는 크기 NN인 배열(vector)이다. 염소 위치의 xx 좌표를 나타내는 x\[0..N−1]x\[0..N-1], yy 좌표를 나타내는 y\[0..N−1]y\[0..N-1] 이 인자로 주어진다. ii (0≤i≤N−10 \le i \le N-1)번 염소의 위치는 (x\[i],y\[i])(x\[i], y\[i])이다.
  • int count( int a, int b, int c ) ;주어진 세 염소의 좌표 (x\[a],y\[a]),(x\[b],y\[b]),(x\[c],y\[c])(x\[a], y\[a]), (x\[b], y\[b]), (x\[c], y\[c]) 를 이용하여 세 번 표식이 되는 염소들의 마릿수를 구하여 return 한다.

제한

  • 3≤N≤3,0003 \le N \le 3\\,000
  • 1≤Q≤5×1061 \le Q \le 5 \times 10^6
  • 모든 염소의 xx좌표와 yy좌표는 00이상 10910^9 이하

예제2

  1. 예제 1

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

    입력
    5
    -2 -4
    -1 -1
    0 0
    1 -1
    2 -4
    
    예상 출력
    0