Cod sursa(job #1545638)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 6 decembrie 2015 22:00:20
Problema Patrate 3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<cstdio>
#include<vector>
#include<map>
#include<cmath>
using namespace std;
vector<pair<int,int> > points;
map<pair<int,int>,int> h;
int main(){
    freopen("patrate3.in","r",stdin);
    freopen("patrate3.out","w",stdout);
    int n,i,ans=0,j,dx,dy,x,y;
    double x0,y0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        scanf("%lf%lf",&x0,&y0);
        x=(int)round(x0*10000);
        y=(int)round(y0*10000);
        points.push_back(make_pair(x,y));
        h[make_pair(x,y)]=1;
    }
    for(i=0;i<n;i++)
        for(j=0;j<n;j++){
            if(i==j)
                continue;
            dx=points[i].first-points[j].first;
            dy=points[j].second-points[i].second;
            if(h.find(make_pair(points[i].first+dy,points[i].second+dx))==h.end())
                continue;
            if(h.find(make_pair(points[j].first+dy,points[j].second+dx))==h.end())
                continue;
            ans++;
        }
    ans/=4;
    printf("%d",ans);
    return 0;
}