Pagini recente » Cod sursa (job #2468615) | Cod sursa (job #2278796) | Cod sursa (job #2744875) | Cod sursa (job #2340542) | Cod sursa (job #2734950)
#include <iostream>
#include <fstream>
#include <map>
using namespace std;
ifstream fin ("trapez.in");
ofstream fout ("trapez.out");
int n;
long long lin[1001], col[1001];
long long rez;
map<pair<int, int>, int> x;
int cmmdc (int a, int b)
{
while(b)
{
int rest=a%b;
a=b;
b=rest;
}
return a;
}
int main()
{
fin>>n;
for(int i=1; i<=n; i++)
fin>>lin[i]>>col[i];
for(int i=1; i<=n; i++)
for(int j=i+1; j<=n; j++)
{
int dlin=lin[j]-lin[i], dcol=col[j]-col[i];
int CMMDC=cmmdc(dlin, dcol);
dlin/=CMMDC;
dcol/=CMMDC;
x[ {dlin, dcol}]++;
}
map<pair<int, int>, int>::iterator it;
for(it=x.begin(); it!=x.end(); ++it)
{
int val=it->second;
rez+=(val*(val-1)/2);
}
fout<<rez;
return 0;
}