Cod sursa(job #1284406)

Utilizator dragangabrielDragan Andrei Gabriel dragangabriel Data 6 decembrie 2014 15:07:39
Problema Patrate 3 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<unordered_map>
using namespace std;

unordered_map<float,float>mymap;
int n,i,j,k,rez;
float x[1005],y[1005];

bool ok(float a,float b)
{
    unordered_map<float,float> :: iterator it;
    it=mymap.find(a);
    while (it!=mymap.end() && it->first-a<=0.000000001 )
    {
        if (it->second-b<=0.000000001) return true;
        ++it;
    }
    return false;
}

int main()   //adun 10 000
{
    freopen("patrate3.in","r",stdin);
    freopen("patrate3.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%f %f",&x[i],&y[i]);
        mymap[x[i]]=y[i];
    }
    for(i=1;i<=n;i++)
        for(j=1;j<i;j++)
        {
            float x1temp=x[i]+y[i]-y[j];
            float y1temp=x[j]+y[i]-x[i];
            float x2temp=x[j]+y[j]-y[j];
            float y2temp=x[j]+y[j]-x[i];
            if (ok(x1temp,y1temp) && ok(x2temp,y2temp))
                rez++;
        }
    printf("%d\n",rez);
    return 0;
}