#include #include #include int main() { size_t N; size_t xLB, xRB; scanf("%zu %zu %zu", &N, &xLB, &xRB); size_t H = 1680; size_t W = 1280; // H = 10; // W = 10; std::vector> g(H+1, std::vector(W+1)); for (size_t i = 1; i <= N; ++i) { int XL, YU, XR, YD; scanf("%d %d %d %d", &XL, &YU, &XR, &YD); XL = std::clamp(XL-1, 0, W); YU = std::clamp(YU-1, 0, H); XR = std::clamp(XR, 0, W); YD = std::clamp(YD, 0, H); g[YU][XL] += i; g[YD][XL] -= i; g[YU][XR] -= i; g[YD][XR] += i; } for (size_t i = 1; i <= H; ++i) for (size_t j = 0; j <= W; ++j) g[i][j] += g[i-1][j]; for (size_t i = 0; i <= H; ++i) for (size_t j = 1; j <= W; ++j) g[i][j] += g[i][j-1]; std::vector res(N); for (size_t j = std::max(0, xLB-1); j < xRB; ++j) { for (size_t i = H; i--;) { if (g[i][j] == 0) continue; res[g[i][j]-1] = 1; break; } } // for (size_t i = 0; i < H; ++i) // for (size_t j = 0; j < W; ++j) // fprintf(stderr, "%d%c", g[i][j], j+1