Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <algorithm>using namespace std;const int MAXN = 1005;int W, H, N;struct Rect {Rect() {cntReachable = 0;}int x1, y1, x2, y2, cntReachable;int reachable[32];}r[MAXN];bool intersect(const Rect &A, const Rect &B) {return max(A.x1, B.x1) < min(A.x2, B.x2) && max(A.y1, B.y1) < min(A.y2, B.y2);}bool notCovered(int x, int y, int id) {for (int i = id + 1; i <= N; ++i)if (x > r[i].x1 && x < r[i].x2 && y > r[i].y1 && y < r[i].y2) return false;return true;}bool canRemove(int id) {return notCovered(r[id].x1, r[id].y1, id) || notCovered(r[id].x1, r[id].y2, id)|| notCovered(r[id].x2, r[id].y1, id) || notCovered(r[id].x2, r[id].y2, id);}int main() {scanf("%d%d%d", &W, &H, &N);for (int i = 1; i <= N; ++i) {scanf("%d%d%d%d", &r[i].x1, &r[i].y1, &r[i].x2, &r[i].y2);