#include <bits/stdc++.h> using namespace std; #define pb push_back #define lb lower_bound #define ull unsigned ll #define gcd(a,b) __gcd(a,b) #define pii pair<int,int> #define all(x) x.begin(),x.end() #define ll long long #define mp make_pair //#define pi acos(-1) #define mod 1000000007 #define inf (1LL<<31)-1 map<int,vector<pii> > X,Y; vector<pair<int,pii> > V; const int mx = 200005; int tree[mx], pos[mx],N; int getPos(int n) { return (int) (lb(pos,pos+N,n)-pos) + 1; } int update(int idx,int val) { while(idx<=N) { tree[idx] += val; idx += (idx&-idx); } return 0; } int sum(int idx) { int res = 0; while(idx>0) { res += tree[idx]; idx -= (idx&-idx); } return res; } int main() { int i,j,k,n; scanf("%d",&n); int x1,y1,x2,y2; for(i=0;i<n;i++) { scanf("%d%d%d%d",&x1,&y1,&x2,&y2); if(x1>x2) swap(x1,x2); if(y1>y2) swap(y1,y2); if(x1==x2) Y[x1].pb(mp(y1,y2)); else X[y1].pb(mp(x1,x2)); pos[N++] = y1; pos[N++] = y2; } sort(pos,pos+N); N = (int) (unique(pos,pos+N)-pos); map<int,vector<pii> > :: iterator it; ll ans = 0; for(it=X.begin();it!=X.end();it++) { vector<pii>& vt = it -> second; sort(all(vt)); int y = (it -> first); int x1 = vt[0].first; int x2 = vt[0].second; int sz = vt.size(); for(i=1;i<sz;i++) { if(x2<vt[i].first) { ans += (x2-x1+1); V.pb(mp(x1,mp(-1,y))); V.pb(mp(x2+1,mp(1,y))); x1 = vt[i].first; x2 = vt[i].second; } else x2 = max(x2,vt[i].second); } ans += (x2-x1+1); V.pb(mp(x1,mp(-1,y))); V.pb(mp(x2+1,mp(1,y))); } int m = V.size(), p = 0; sort(all(V)); for(it=Y.begin();it!=Y.end();it++) { vector<pii>& vt = it -> second; sort(all(vt)); int x = (it -> first); while(p<m&&x>=V[p].first) { int t1 = V[p].second.first; int t2 = V[p].second.second; t2 = getPos(t2); update(t2,-t1); p++; } int y1 = vt[0].first; int y2 = vt[0].second; int sz = vt.size(); for(i=1;i<sz;i++) { if(y2<vt[i].first) { ans += (y2-y1+1); y2 = getPos(y2); y1 = getPos(y1); ans -= sum(y2) - sum(y1-1); y2 = vt[i].second; y1 = vt[i].first; } else y2 = max(y2,vt[i].second); } ans += (y2-y1+1); y2 = getPos(y2); y1 = getPos(y1); ans -= sum(y2) - sum(y1-1); } cout << ans << endl; }