Cod sursa(job #1776940)

Utilizator MithrilBratu Andrei Mithril Data 11 octombrie 2016 22:27:53
Problema Triang Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <bits/stdc++.h>
using namespace std;

int n,cnt;
double x,y;
vector<complex<double> >V;

bool cmp(complex<double> a, complex<double> b){
    if(real(a)==real(b)){
        return imag(a)<imag(b);
    }
    else return real(a)<real(b);
}

int main()
{
    cin>>n;
    V.resize(n+1);
    V[0]=complex<double>(INT_MIN,INT_MIN);
    for(int i=1;i<=n;i+=1){
        cin>>x>>y;
        V[i]=complex<double>(x,y);
    }
    sort(V.begin(),V.end(),cmp);
    for(int i=1;i<n-1;i+=1)
    for(int j=i+1;j<n;j+=1){
        double d=sqrt(norm(V[i]-V[j]));
        int left0=j+1;
        int right0=n;
        while(left0<=right0){
            int m=(left0+right0)/2;
            double d0=sqrt(norm(V[m]-V[i]));
            if(abs(d0-d)<0.001){
                cnt+=1;
                break;
            }
            else{
                if(d0<d)
                    left0=m+1;
                else
                    right0=m-1;
            }
        }
    }
    cout<<cnt;
    return 0;
}