https://beta.atcoder.jp/contests/abc112/tasks/abc112_c
解法
https://beta.atcoder.jp/contests/abc112/submissions/3347708
ピラミッドの中心座標を全探索しよう。
高度を見ると、「H-中心とのマンハッタン距離」になっているので、
逆に中心は「h[i]+中心とのマンハッタン距離」の高さになっている。
h[i]=0になっているものは距離が分からないので、中心の高さを求めるのには使わない。
中心の高さが求まったあとは、全ての頂点についてそれをチェックする。
チェックが通れば答えとして出力。
int N, x[101], y[101], h[101]; //--------------------------------------------------------------------------------------------------- void _main() { cin >> N; rep(i, 0, N) cin >> x[i] >> y[i] >> h[i]; rep(cx, 0, 101) rep(cy, 0, 101) { int H = 1; rep(i, 0, N) if (h[i]) H = h[i] + abs(cx - x[i]) + abs(cy - y[i]); int ok = 1; rep(i, 0, N) if (max(H - abs(x[i] - cx) - abs(y[i] - cy), 0) != h[i]) ok = 0; if (ok) { printf("%d %d %d\n", cx, cy, H); return; } } }