(I2
I113
I4
(dp0
Vsquares.%l
p1
(Vsquares.cpp
p2
S'#include<iostream>\r\n#include<cstdio>\r\n#include<algorithm>\r\n#include<cmath>\r\n#include<queue>\r\n#include<vector>\r\n#include<stack>\r\n#include<limits.h>\r\nusing namespace std;\r\ntypedef long long ll;\r\nll v_up_left[16][4],v_up_right[16][4],v_down_left[16][4],v_down_right[16][4],n,centeri,centerj;\r\nll vertexi,vertexj,area,sum;\r\nvoid up_left(ll x1, ll y11, ll x2, ll y2, ll index)\r\n{\r\n        v_up_left[index][1]=x2;\r\n        v_up_left[index][2]=y2;\r\n        v_up_right[index][1]=x1+(x1-x2);\r\n        v_up_right[index][2]=y2;\r\n        v_down_left[index][1]=x2;\r\n        v_down_left[index][2]=y11-(y2-y11);\r\n        v_down_right[index][1]=x1+(x1-x2);\r\n        v_down_right[index][2]=y11-(y2-y11);\r\n}\r\nvoid down_left(ll x1, ll y11, ll x2, ll y2, ll index)\r\n{\r\n        v_up_left[index][1]=x2;\r\n        v_up_left[index][2]=y11+(y11-y2);\r\n        v_up_right[index][1]=x1+(x1-x2);\r\n        v_up_right[index][2]=y11+(y11-y2);\r\n        v_down_left[index][1]=x2;\r\n        v_down_left[index][2]=y2;\r\n        v_down_right[index][1]=x1+(x1-x2);\r\n        v_down_right[index][2]=y2;\r\n}\r\nvoid up_right(ll x1, ll y11, ll x2, ll y2, ll index)\r\n{\r\n        v_up_left[index][1]=x1-(x2-x1);\r\n        v_up_left[index][2]=y2;\r\n        v_up_right[index][1]=x2;\r\n        v_up_right[index][2]=y2;\r\n        v_down_left[index][1]=x1-(x2-x1);\r\n        v_down_left[index][2]=y11-(y2-y11);\r\n        v_down_right[index][1]=x2;\r\n        v_down_right[index][2]=y11-(y2-y11);\r\n}\r\nvoid down_right(ll x1, ll y11, ll x2, ll y2, ll index)\r\n{\r\n        v_up_left[index][1]=x1-(x2-x1);\r\n        v_up_left[index][2]=y11+(y11-y2);\r\n        v_up_right[index][1]=x2;\r\n        v_up_right[index][2]=y11+(y11-y2);\r\n        v_down_left[index][1]=x1-(x2-x1);\r\n        v_down_left[index][2]=y2;\r\n        v_down_right[index][1]=x2;\r\n        v_down_right[index][2]=y2;\r\n} \r\nll determine_vertex(ll x1, ll y11, ll x2, ll y2)\r\n{\r\n    if(x2<x1&&y2>y11)return 1;\r\n    if(x2<x1&&y2<y11)return 2;\r\n    if(x2>x1&&y2>y11)return 3;\r\n    return 4;\r\n}\r\nll common_area(ll x,ll y)\r\n{\r\n    if((v_up_left[x][1]<v_up_left[y][1]&&v_up_right[x][1]<v_up_left[y][1])\r\n       ||(v_up_left[x][1]>v_up_right[y][1]&&v_up_right[x][1]>v_up_right[y][1])||\r\n       (v_up_left[x][2]>v_up_left[y][2]&&v_down_left[x][2]>v_up_left[y][2])||\r\n       (v_up_left[x][2]<v_down_left[y][2]&&v_down_right[x][2]<v_down_left[y][2]))return 0;\r\n    ll x1,x2,y11,y3,side1,side2;\r\n    x1=max(v_up_left[x][1],v_up_left[y][1]);\r\n    y11=min(v_up_left[x][2],v_up_left[y][2]);\r\n    x2=min(v_up_right[x][1],v_up_right[y][1]);\r\n    y3=max(v_down_left[x][2],v_down_left[y][2]);\r\n    //cout<<x1<<" "<<y11<<" "<<x2<<" "<<y2<<" "<<x3<<" "<<y3<<endl;\r\n    side1=abs(x1-x2);\r\n    side2=abs(y11-y3);\r\n    //cout<<side1<<" "<<side2<<endl;\r\n    return side1*side2;\r\n}\r\nint main()\r\n{\r\n    cin>>n;\r\n    for(ll i=1;i<=n;i++)\r\n    {\r\n        cin>>centeri>>centerj>>vertexi>>vertexj;\r\n        ll a=determine_vertex(centeri,centerj,vertexi,vertexj);\r\n        if(a==1)\r\n            up_left(centeri,centerj,vertexi,vertexj,i);\r\n        if(a==2)\r\n            down_left(centeri,centerj,vertexi,vertexj,i);\r\n        if(a==3)\r\n            up_right(centeri,centerj,vertexi,vertexj,i);\r\n        if(a==4)\r\n            down_right(centeri,centerj,vertexi,vertexj,i);\r\n        area=abs(v_up_left[i][2]-v_down_left[i][2])*abs(v_up_left[i][2]-v_down_left[i][2]);\r\n        sum+=area;\r\n    }\r\n    for(ll i=1;i<=n;i++)\r\n    {\r\n        for(ll j=i+1;j<=n;j++)\r\n            sum-=common_area(i,j);\r\n    }\r\n    cout<<sum<<endl;\r\n    return 0;\r\n}\r\n/*\r\n2\r\n-40 30 -50 40\r\n-50 30 -55 35\r\n*/'
p3
tp4
stp5
.