히스토그램은 데이터 분포를 나타내는 그래프다. 이 문제에서는 너비 W인 히스토그램을 좌표평면의 점들로 표현한다. 점은 짝수 개이며
(x0,y1),(x1,y1),(x1,y2),(x2,y2),…,(xN/2−1,yN/2),(xN/2,yN/2)
형태를 따른다. 인접한 두 점은 x좌표가 같거나 y좌표가 같고, 가로와 세로 변이 번갈아 나온다.
조건은 다음과 같다.
히스토그램 H에 대해 구간 ⟨x,x+1⟩에서의 높이를 yH(x)라 한다. 두 히스토그램 H와 H′의 오차는 다음 두 방식 중 하나로 잰다.
diffcount(H′,H)=∑x=0W−1diff(yH(x),yH′(x)),diff(y1,y2)=0 if y1=y2 else 1
abserror(H′,H)=∑x=0W−1∣yH(x)−yH′(x)∣
주어진 히스토그램 H, 점 집합 S, 오차 측정 방식이 주어질 때, 정의에 쓰는 모든 점이 S에 속하는 히스토그램 H′ 중 H와의 오차가 최소인 것을 찾아 출력하라.
첫 줄에 N,M,G (2≤N≤100000, N은 짝수, 2≤M≤100000, 1≤G≤2)가 주어진다. G=1이면 diffcount, G=2이면 abserror를 쓴다.
다음 N줄: 히스토그램 H를 정의하는 점 (X,Y).
다음 M줄: 집합 S의 점 (X,Y). (0≤X≤106, 1≤Y≤106)
첫 줄에 최소 오차 D.
둘째 줄에 최적 히스토그램을 정의하는 짝수 개수 L.
다음 L줄에 점 좌표 X Y를 출력한다. 정의는 문제의 모든 조건을 만족해야 한다.