Cod sursa(job #2641764)

Utilizator stefantagaTaga Stefan stefantaga Data 12 august 2020 17:23:39
Problema Patrate 3 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <bits/stdc++.h>
#define eps 0.00001
using namespace std;
ifstream f("patrate3.in");
ofstream g("patrate3.out");
struct wow
{
    double x,y;
}v[1005],a,b;
bool compare (wow a,wow b)
{
    if (abs(a.x<b.x)<eps)
    {
        return a.y<b.y;
    }
    return a.x<b.x;
}
int n,i,j;
long long numar;
int caut (wow a)
{
    int st=1,dr=n,mij;
    while (st<=dr)
    {
        mij=(st+dr)/2;
        if (abs(v[mij].x-a.x)<eps&&abs(v[mij].y-a.y)<eps)
        {
            return 1;
        }
        if (compare(v[mij],a)==1)
        {
            st=mij+1;
        }
        else
        {
            dr=mij-1;
        }
    }
    return 0;
}
int main()
{
    f>>n;
    for (i=1;i<=n;i++)
    {
        f>>v[i].x>>v[i].y;
    }
    sort (v+1,v+n+1,compare);
    for (i=1;i<=n;i++)
    {
        for (j=i+1;j<=n;j++)
        {
            a.x = v[i].x + v[i].y - v[j].y;
            a.y = v[i].y + v[j].x - v[i].x;
            b.x = v[j].x + v[i].y - v[j].y;
            b.y = v[j].y + v[j].x - v[i].x;
            if (caut(a)==1&&caut(b)==1)
            {
                numar++;
            }
        }
    }
    g<<numar/2;
    return 0;
}