Cod sursa(job #1302214)

Utilizator FiliutaMariusFMI Filiuta Marius FiliutaMarius Data 26 decembrie 2014 18:38:50
Problema Patrate 3 Scor 45
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 0.77 kb
#include<fstream>
#include<cmath>
#include<unordered_map>
#include<unordered_set>
using namespace std;
int main ()
{
    ifstream in("patrate3.in");
    ofstream out("patrate3.out");
    int n;
    long long k=0;
    double v[1001][2];
    unordered_map<double,unordered_set<double>> x;
    in>>n;
    for(int i=0;i<n;i++)
    {
        in>>v[i][0]>>v[i][1];
        for(int j=0;j<i;j++)
        {
            double d,m;
            m=round((v[j][1]-v[i][1])/(v[j][0]-v[i][0])*10000 );
            d=round(sqrt((v[j][0]-v[i][0])*(v[j][0]-v[i][0])+(v[j][1]-v[i][1])*(v[j][1]-v[i][1]))*10000);
            if(x.find(m)!=x.end() && x[m].find(d)!=x[m].end())
                k++;
            else
                x[m].insert(d);
        }
    }
    out<<k/2;
}