Pagini recente » Cod sursa (job #244939) | Cod sursa (job #3257613) | Cod sursa (job #1924991) | Cod sursa (job #1614927) | Cod sursa (job #1775209)
//
// main.cpp
// Triang
//
// Created by Albastroiu Radu on 10/10/16.
// Copyright © 2016 Albastroiu Radu. All rights reserved.
//
#include <iostream>
#include <fstream>
#include <algorithm>
#include <unordered_map>
#include <vector>
#include <cmath>
using namespace std;
ifstream fin( "triang.in");
ofstream fout("triang.out");
long long i, j, n, nr, suma;
double h, m, x, y, dif;
struct punct
{
double x,y;
}element;
vector<punct> puncte;
vector<double> distanta;
int main()
{
fin >> n;
for(i=1;i<=n;i++)
{
fin >> x >> y;
element.x = x;
element.y = y;
puncte.push_back(element);
}
for(i = 0; i < puncte.size(); i++)
{
for(j = i+1; j < puncte.size(); j++)
{
m = (puncte[j].x - puncte[i].x)*(puncte[j].x - puncte[i].x) + (puncte[j].y - puncte[i].y)*(puncte[j].y - puncte[i].y);
m = sqrt(m);
distanta.push_back(m);
}
}
sort(distanta.begin(), distanta.end());
dif = 0.001; // 10^(-3)
nr = 1;
for(i = 1; i < distanta.size(); i++)
{
if(abs(distanta[i] - distanta[i-1]) <= dif)
{
nr++;
}
else
{
suma += (nr * (nr-1) * (nr-2))/6;
nr = 1;
}
}
suma += (nr * (nr-1) * (nr-2))/6;
fout << suma;
return 0;
}