Pagini recente » Cod sursa (job #1858311) | Cod sursa (job #2718296) | Cod sursa (job #1276808) | Cod sursa (job #2760676) | Cod sursa (job #1764265)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int n;
ifstream f("trapez.in");
ofstream g("trapez.out");
struct dreapta
{
long long x,y;
}a[1001],panta[1000010];
int h;
int Cmp(dreapta a,dreapta b)
{
return a.x*b.y<b.x*a.y;
}
int main()
{
f >> n;
for(int i=0;i<n;i++)
{
f>>a[i].x >> a[i].y;
}
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
if(i!=j)
{
panta[h].x=a[i].x-a[j].x;
panta[h].y=a[i].y-a[j].y;
if( panta[h].y<0)
{
panta[h].y=panta[h].y*-1;
panta[h].x=panta[h].x*-1;
}
h++;
}
sort(panta,panta+h,Cmp);
int solutie=0;
int nr=1;
for(int i=0;i<h-1;i++)
{
if(panta[i].x*panta[i+1].y==panta[i+1].x*panta[i].y)
{
nr++;
}else
{
solutie+=nr*(nr-1)/2;
nr=1;
}
}
solutie+=nr*(nr-1)/2;
g << solutie;
return 0;
}