Cod sursa(job #1945943)

Utilizator adystar00Bunea Andrei adystar00 Data 29 martie 2017 19:44:49
Problema Patrate 3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <iostream>
#include <fstream>
#include <cmath>
#include <map>
#include <vector>
using namespace std;
map<pair<int,int>,int> h;
vector <pair<int,int> > g;
int main()
{
    ifstream fin ("patrate3.in");
    ofstream fout ("patrate3.out");
    int ans=0,i,j,x,y,n,dx,dy;
    double x0,y0;
    fin>>n;
    for(i=1; i<=n; i++)
    {
        fin>>x0>>y0;
        x=(int)round(x0*10000);
        y=(int)round(y0*10000);
       // cout<<x<<" ";
        g.push_back(make_pair(x,y));
        h[make_pair(x,y)]=1;
        //cout<<h[make_pair(x,y)]<<" ";
    }
    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
        {
            //cout<<i<<" "<<j<<"\n";
            if(i==j)
                continue;
            dx=g[i].first-g[j].first;
            dy=g[j].second-g[i].second;
            if(h.find(make_pair(g[i].first+dy,g[i].second+dx))==h.end())
                continue;
            if(h.find(make_pair(g[j].first+dy,g[j].second+dx))==h.end())
                continue;
            ans++;
            //cout<<i<<" "<<j<<" "<<dx<<" "<<dy<<" "<<ans<<"\n";
        }
    ans/=4;
    fout<<ans;
    return 0;
}