p2002.cpp

来自「大概POJ上50道比较难的题的代码」· C++ 代码 · 共 28 行

CPP
28
字号
#include <iostream>
#include <algorithm>
using namespace std;
const int MAXN = 1001;
struct point{ int x,y; };
bool cmp(point a,point b){ return a.x < b.x || a.x == b.x && a.y < b.y; }
point a[MAXN];
int main(){
    int n;
    point b1,b2;
    while(cin >> n && n){
        for(int i = 0;i < n;++i) scanf("%d%d",&a[i].x,&a[i].y);
        sort(a,a+n,cmp);
        int ans(0);
        for(int i = 0;i < n;++i)
            for(int j = i+1;j < n;++j){
                int x(a[i].x - a[j].x),y(a[i].y - a[j].y);
                b1.x = a[i].x + y; b1.y = a[i].y - x;
                b2.x = a[j].x + y; b2.y = a[j].y - x;
                ans += binary_search(a,a+n,b1,cmp) && binary_search(a,a+n,b2,cmp);
/*                b1.x = a[i].x - y; b1.y = a[i].y + x;
                b2.x = a[j].x - y; b2.y = a[j].y + x;
                ans += binary_search(a,a+n,b1,cmp) && binary_search(a,a+n,b2,cmp);*/
            }
        cout << ans/2 << endl;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?