#include #include #include #include #include #include #include using namespace std; const int N = 2005; struct pp { int x, y; friend bool operator < (pp A, pp B) { if(A.x != B.x) { return A.x < B.x; } else return A.y < B.y; } } p[N]; bool mp[N][N]; int n, a[N], has[N]; vectorv[N]; mapg; void init() { int tp = 0; for(int i=1; i<=n; i++) { scanf("%d%d", &p[i].x, &p[i].y); a[++tp] = p[i].x; a[++tp] = p[i].y; } sort(a+1, a+tp+1); g.clear(); tp = 0; for(int i=1; i<=2*n; i++) { if(g.find(a[i]) == g.end()) { g[a[i]] = ++tp; has[tp] = a[i]; } v[i].clear(); } memset(mp,0,sizeof(mp)); for(int i=1; i<=n; i++) { p[i].x = g[p[i].x]; p[i].y = g[p[i].y]; v[p[i].x].push_back(p[i]); mp[p[i].x][p[i].y] = 1; } } void solve() { int x1,y1, x2, y2,s,x; int ans = 0; for(int i=1; i<=2*n; ++i) { if(v[i].size() < 2) continue; sort(v[i].begin(),v[i].end()); for(int j=0; j