KCPC 개최하기
시간 제한1초메모리 제한1024 MB
세 점 집합에서 점을 하나씩 골라 만든 모든 삼각형에 대해 제곱 변 길이의 합에 부호 있는 넓이의 2배를 더하거나 빼고, 그 총합을 10^9+7로 나눈 나머지를 구합니다.
문제
KCPC는 고려대학교의 ALPS, AlKor, MatKor 세 동아리가 함께 개최한다.
고려대학교는 이차원 평면으로 나타낼 수 있다. 이 평면의 격자점마다 건물이 있을 수 있으며, 각 건물은 ALPS, AlKor, MatKor 중 한 동아리가 관리한다. 건물마다 모양이 서로 다른 도장이 있다.
KCPC를 열려면 서류에 ALPS, AlKor, MatKor의 순서대로 도장을 받아야 한다. 그래서 MatKor 회장 동우는 ALPS, AlKor, MatKor 순서대로 각 동아리가 관리하는 건물을 하나씩 고른다. 고른 세 건물을 각각 , , 라 하자. 동우는 건물 에서 출발해 , 를 거쳐 다시 로 돌아오면서 도장을 받아 서류를 완성한다.
동우는 서류를 완성하는 과정에서 에너지를 쓴다. 에너지는 다음과 같이 계산한다.
기본적으로 세 건물 사이 거리의 제곱을 모두 더한 값, 즉 만큼 에너지를 쓴다.
동우는 왼쪽 다리가 길어서 시계 방향으로 도는 것이 편하다. 이에 따라 쓰는 에너지가 달라진다. 세 건물의 위치가 넓이 인 삼각형을 이룰 때, , , 가 순서대로 시계 방향이면 에너지를 만큼 덜 쓴다. 반시계 방향이면 만큼 더 쓴다. 세 점이 한 직선 위에 있으면 더 쓰거나 덜 쓰는 에너지는 없다.
동우는 세 건물을 고를 수 있는 모든 경우마다 서류를 완성하려고 한다. 건물의 위치가 주어질 때, 건물을 고를 수 있는 모든 경우에 대해 동우가 쓰는 총 에너지를 구하라. 총 에너지는 각 서류를 완성하는 데 드는 에너지 값의 합이다. 정답이 매우 클 수 있으므로 로 나눈 나머지를 출력한다.
입력
첫 줄에 ALPS, AlKor, MatKor가 관리하는 건물의 개수 , , 가 이 순서대로 주어진다().
다음 줄에 걸쳐 ALPS가 관리하는 건물의 좌표 , 가 주어진다.
다음 줄에 걸쳐 AlKor가 관리하는 건물의 좌표 , 가 주어진다.
다음 줄에 걸쳐 MatKor가 관리하는 건물의 좌표 , 가 주어진다.
모든 좌표의 절댓값은 이하의 정수이다. 위치가 같은 건물은 없다.
입력 데이터의 양이 많으니 빠른 입력 방법을 사용하라.
출력
건물을 고를 수 있는 모든 경우에 대해 필요한 총 에너지를 로 나눈 나머지를 출력한다.
각 경우에 소모하는 에너지 값이 양의 정수임을 증명할 수 있다.