Pagini recente » Cod sursa (job #1978933) | Cod sursa (job #1094836) | Cod sursa (job #2159934) | Cod sursa (job #19222) | Cod sursa (job #2981167)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <map>
#define nmx 1001
using namespace std;
struct edge
{
float panta;
int xm;
int ym;
int length;
};
int n,a,b,x[nmx],y[nmx],ct;
map <edge,int> mymap;
int main()
{
ifstream f ("patrate3.in");
ofstream g ("patrate3.out");
f>>n;
for (int i=1; i<=n; i++)
{
f>>a>>b;
x[i]=a*10000;
y[i]=b*10000;
}
for (int i=1; i<=n; i++)
for (int j=i+1; j<=n; j++)
{
edge ajutor;
ajutor.panta=(float)((y[i]-y[j])/(x[i]-x[j]));
ajutor.xm=x[i]+x[j];
ajutor.ym=y[i]+y[j];
ajutor.length=(y[i]-y[j])*(y[i]-y[j])+(x[i]-x[j])*(x[i]-x[j]);
mymap[ajutor]++;
}
for (auto it : mymap)
ct+=it.second*mymap[{(float)(-1/it.first.panta),it.first.xm,it.first.ym,it.first.length}];
g<<ct/2;
}