
연구실에서 소형 비행 로봇을 개발하고 있다.
연구실은 층이 K개인 상자 모양 건물이고, 층에는 아래에서 위로 1번부터 K번까지 번호가 붙어 있다. 각 층의 바닥은 정사각형이고 변이 동서 방향과 남북 방향에 정확히 맞춰져 있으며, R×R개의 칸으로 나뉘어 있다. z번째 층에서 서쪽으로부터 x번째 열, 남쪽으로부터 y번째 행에 있는 칸을 (x,y,z)로 쓴다. x와 y는 1부터 센다. z>1인 모든 x, y, z에 대해 칸 (x,y,z)는 칸 (x,y,z−1) 바로 위에 있다.
연구실 안에는 로봇 N대가 날고 있고 1번부터 N번까지 번호가 붙어 있다. 처음에 i번 로봇은 칸 (xi,yi,zi)에 있다.
로봇 한 대를 원하는 곳으로 옮기는 기능은 이미 완성했다. 다음 목표는 모든 로봇을 한 칸에 모으면서 에너지를 가장 적게 쓰는 것이다.
2층 이상인 층의 바닥에는 구멍이 여러 개 뚫려 있다. 구멍은 직사각형이고 변이 칸의 변과 맞닿아 있다. 건물에는 구멍이 M개 있고 1번부터 M번까지 번호가 붙어 있다. j번 구멍은 정수 다섯 개 u1j, v1j, u2j, v2j, wj로 주어지며, u1j≤x≤u2j이고 v1j≤y≤v2j인 칸 (x,y,wj)를 모두 덮는다.
로봇은 두 가지 방법으로 움직인다.
아래에 구멍이 있어도 로봇은 떨어지지 않는다. 로봇 두 대 이상을 같은 칸에 둘 수 있다.
바닥에 구멍이 없는 K층의 칸 하나에 로봇을 모두 모으려고 한다. 로봇들이 쓰는 총 에너지의 최솟값을 출력하라.
입력은 데이터 집합 최대 32개로 이루어지고, 각 데이터 집합의 형식은 다음과 같다. 입력의 모든 값은 정수이다.
N
M K R
x1 y1 z1
...
xN yN zN
u11 v11 u21 v21 w1
...
u1M v1M u2M v2M wM
N은 연구실에 있는 로봇의 수이다(1≤N≤100). M은 구멍의 수이고(1≤M≤50), K는 층의 수이며(2≤K≤10), R은 한 층의 한 행과 한 열에 들어 있는 칸의 수이다(3≤R≤106).
각 i에 대해 정수 xi, yi, zi는 i번 로봇이 처음에 있는 칸을 나타낸다(1≤xi≤R, 1≤yi≤R, 1≤zi≤K). 각 j에 대해 정수 u1j, v1j, u2j, v2j, wj는 j번 구멍의 위치와 범위를 나타낸다(1≤u1j≤u2j≤R, 1≤v1j≤v2j≤R, 2≤wj≤K).
다음이 보장된다.
로봇 두 대 이상이 같은 칸에서 시작할 수 있다. 이웃한 두 칸이 서로 다른 구멍에 속할 수도 있다.
입력의 끝은 0 하나만 있는 줄로 나타낸다.
각 데이터 집합마다 최소 총 에너지 소모량을 한 줄에 출력한다.