Cod sursa(job #1310797)

Utilizator fulgerulnegruFMI Ekart Dragos-Ioan fulgerulnegru Data 7 ianuarie 2015 11:07:48
Problema Patrate 3 Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 0.89 kb
#include<cstdio>
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("patrate3.in");
ofstream g("patrate3.out");
int n,ans;
int j;
float dx,dy;
pair<float,float> P[1000];
pair<float,float> p1,p2;
bool cmp(pair<float,float>a,pair<float,float>b)
    {return a.first<=b.first-0.0001||a.first<b.first+0.0001&&a.second<=b.second-0.0001;}
int main()
{   int i;
    f>>n;
    for(i=0;i<n;++i)
    f>>P[i].first>>P[i].second;
    sort(P,P+n,cmp);
    for(i=1;i<=n;++i)
      for(j=i;j<=n;++j)
        if(P[j].first>P[i].first&&P[j].second>=P[i].second){
            dx=P[j].first-P[i].first;
             dy=P[j].second-P[i].second;
             p1=P[i];
             p2=P[j];
             p1.first-=dy;
             p2.first-=dy;
             p1.second+=dx; p2.second+=dx;
             if(binary_search(P,P+n,p1,cmp)&&binary_search(P,P+n,p2,cmp))
                ++ans;
            }
    g<<ans;
}