# C++ program to find out the center coordinates and the height of a building

Suppose, there is a building that has center coordinates xc, yc, and height h. We don't know the center coordinates of the building, but we are provided with n pieces of information that contain x and y coordinates and an altitude value a. The altitude of coordinates (x, y) is the maximum of (h - |x - xc| - |y - yc|, 0). We have to find out the center coordinates and the height of the building. The coordinate xi is given in the array x, yi is given in teg array y, and ai is given in array a.

So, if the input is like n = 3, x = {3, 3, 2}, y = {4, 2, 3}, a = {6, 6, 6}, then the output will be 3 3 7.

The center coordinates are 3,3 and the height of the building is 7.

## Steps

To solve this, we will follow these steps −

check := true
for initialize xc := 0, when xc <= 100, update (increase xc by 1), do:
for initialize yc := 0, when yc <= 100, update (increase yc by 1), do:
check := true
mh := 2000000000
h := -1
for initialize i := 0, when i < n, update (increase i by 1), do:
k := |(x[i] - xc) + |y[i] - yc||
if a[i] is same as 0, then:
mh := minimum of mh and k
else:
if h < 0, then:
h := a[i] + k
otherwise when h is not equal to a[i] + k, then:
check := false
Come out from the loop
if h > mh, then:
check := false
if check is non-zero, then:
Come out from the loop
if check is non-zero, then:
Come out from the loop
print(xc, yc, h)

## Example

Let us see the following implementation to get better understanding −

#include <bits/stdc++.h>
using namespace std;

void solve(int n, vector<int> x, vector<int> y, vector<int> a){
bool check = true;
int xc, yc, h;
for (xc = 0; xc <= 100; xc++) {
for (yc = 0; yc <= 100; yc++) {
check = true;
int k, mh = 2e9;
h = -1;
for(int i = 0; i < n; i++) {
k = abs(x[i] - xc) + abs(y[i] - yc);
if (a[i] == 0) {
mh = min(mh, k);
} else {
if (h < 0) {
h = a[i] + k;
} else if (h != a[i] + k) {
check = false;
break;
}
}
}
if (h > mh) {
check = false;
continue;
}
if (check) {
break;
}
}
if (check) {
break;
}
}
cout << xc << " " << yc << " " << h;
}
int main() {
int n = 3;
vector<int> x = {3, 3, 2}, y = {4, 2, 3}, a = {6, 6, 6};
solve(n, x, y, a);
return 0;
}

## Input

3, {3, 3, 2}, {4, 2, 3}, {6, 6, 6}

## Output

3 3 7