#include class Solution { public: int countCoveredBuildings(int n, std::vector>& buildings) { std::vector maxX(n + 1); std::vector minX(n + 1, n + 1); std::vector maxY(n + 1); std::vector minY(n + 1, n + 1); for (auto &p : buildings) { int x = p[0], y = p[1]; maxX[y] = std::max(maxX[y], x); minX[y] = std::min(minX[y], x); maxY[x] = std::max(maxY[x], y); minY[x] = std::min(minY[x], y); } int res = 0; for (auto &p : buildings) { int x = p[0], y = p[1]; if (x > minX[y] && x < maxX[y] && y > minY[x] && y < maxY[x]) { res++; } } return res; } };