(I2
I103
I4
(dp0
Vsquares.%l
p1
(Vsquares.cpp
p2
S'#include <bits/stdc++.h>\r\nusing namespace std;\r\n\r\ntypedef long double mdouble;\r\n\r\nstruct point\r\n{\r\n    mdouble x, y;\r\n    point(mdouble x, mdouble y)\r\n    {\r\n        this->x=x;\r\n        this->y=y;\r\n    }\r\n    point(){}\r\n};\r\n\r\nstruct square\r\n{\r\n    vector<point> pts;\r\n\r\n    mdouble minX, maxX;\r\n    mdouble minY, maxY;\r\n\r\n    square(point center, point edge)\r\n    {\r\n        minX=1000000;\r\n        maxX=-10000000;\r\n        minY=1000000;\r\n        maxY=-10000000;\r\n        int a=abs(edge.x-center.x), b=abs(edge.y-center.y);\r\n\r\n        pts.emplace_back(center.x+a, center.y+b);\r\n        pts.emplace_back(center.x-a, center.y-b);\r\n        pts.emplace_back(center.x+a, center.y-b);\r\n        pts.emplace_back(center.x-a, center.y+b);\r\n\r\n        for(point &p : pts)\r\n        {\r\n            minX=min(minX, p.x);\r\n            minY=min(minY, p.y);\r\n            maxX=max(maxX, p.x);\r\n            maxY=max(maxY, p.y);\r\n        }\r\n    }\r\n\r\n    bool contains(point p)\r\n    {\r\n        return p.x>=minX && p.x<=maxX && p.y>=minY && p.y<=maxY;\r\n    }\r\n};\r\n\r\nint n;\r\nvector<square> squares;\r\n\r\nvoid read()\r\n{\r\n    cin>>n;\r\n    for(int i=0;i<n;i++)\r\n    {\r\n        point center, edge;\r\n        cin>>center.x>>center.y>>edge.x>>edge.y;\r\n        squares.emplace_back(center, edge);\r\n    }\r\n}\r\n\r\nint main()\r\n{\r\n    ios::sync_with_stdio(false);\r\n    cin.tie(nullptr);\r\n    read();\r\n\r\n    /*for(square &sq : squares)\r\n    {\r\n        for(point &p : sq.pts)printf("{%llf %llf}\\n", p.x, p.y);\r\n        puts("\\n");\r\n    }*/\r\n\r\n    int answer=0;\r\n\r\n    for(mdouble i=-50.5; i<=50.5;i+=1.0)\r\n    {\r\n        for(mdouble j=-50.5;j<=50.5;j+=1.0)\r\n        {\r\n            point p(i, j);\r\n            for(square &sq : squares)\r\n            {\r\n                if(sq.contains(p))\r\n                {\r\n                    answer++;\r\n                    break;\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    printf("%d\\n", answer);\r\n}\r\n/*\r\n1\r\n3 4 5 2\r\n\r\n1\r\n-3 -4 -5 -2\r\n\r\n1\r\n0 0 1 1\r\n\r\n1\r\n-15 35 -40 20\r\n\r\n1\r\n-35 45 -50 50\r\n\r\n3\r\n-35 45 -50 50\r\n-15 35 -40 20\r\n-40 30 -30 20\r\n*/\r\n'
p3
tp4
stp5
.