원의 합집합에 포함된 격자점 개수

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

정수 좌표를 갖는 원이 여러 개 주어진다. 각 원의 중심 좌표와 반지름은 모두 정수이다. 이 원들의 합집합에 포함되는, 정수 좌표를 갖는 점의 개수를 출력하는 프로그램을 작성하여라.

예를 들어 아래 그림에서 작은 원(중심 (1,1)(1,1), 반지름 11)은 점 55개를 포함하고, 큰 원(중심 (2,2)(2,2), 반지름 22)은 점 1313개를 포함하며, 두 원의 합집합은 점 1515개를 포함한다. 원의 경계 위에 정확히 놓인 점도 그 원에 포함되는 것으로 본다.

추가 조건으로, 프로그램은 xx좌표와 yy좌표가 모두 (2141)-(2^{14}-1) 이상 2142^{14} 이하, 즉 16383-16383 이상 1638416384 이하의 정수인 점만 세어야 한다. 원이 이 영역의 경계 밖으로 뻗어 나갈 수는 있지만, 이 영역 밖의 점은 세면 안 된다.

입력

입력은 여러 개의 데이터 집합으로 이루어진다. 각 데이터 집합은 원의 개수만큼의 줄로 구성되며, 한 줄이 원 하나를 나타낸다. 각 줄에는 공백으로 구분된 세 정수가 있으며, 차례로 원의 중심의 xx좌표, yy좌표, 반지름이다. 한 데이터 집합의 끝은 세 개의 00으로 이루어진 줄 0 0 0으로 표시된다. 한 데이터 집합에는 원이 최대 10,000개까지 있다. 원이 하나도 없는(즉 0 0 0이 곧바로 나오는) 데이터 집합은 전체 입력의 끝을 나타낸다.

출력

각 데이터 집합마다 Problem #n:을 출력한 뒤, 공백 한 칸과 그 집합의 답(합집합에 포함되는 점의 개수)을 이어서 출력한다. 여기서 nn은 데이터 집합의 번호이며 11부터 시작한다.