Pagini recente » Cod sursa (job #1001405) | Cod sursa (job #1377242) | Cod sursa (job #1700753) | Cod sursa (job #1821028) | Cod sursa (job #583951)
Cod sursa(job #583951)
#include <fstream>
#include <algorithm>
using namespace std;
int n,seg,nrt;
struct p{long long x,y;};
p a[1006];
struct dr{double panta;};
dr b[1006*1006];
void calcul_panta(p A,p B)
{
if(A.x<B.x){
B.x-=A.x,B.y-=A.y;
b[seg++].panta=(double)B.x / B.y;}
else
{
A.x -= B.x,A.y -= B.y;
b[seg++].panta=(double)A.x / A.y;
}
}
bool cmp(dr t,dr q)
{
return t.panta>q.panta;
}
int main()
{
long long i,j;
ifstream in("trapez.in");
in>>n;
for(i=0;i<n;i++)
in>>a[i].x>>a[i].y;
in.close();
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
calcul_panta(a[i],a[j]);
sort(b,b+seg,cmp);
int q=0;
for(i=0;i<seg;i++)
{
if(b[i].panta!=b[i+1].panta)
{
q++;
nrt+=(q*(q-1))/2;
q=0;
}
else q++;
}
ofstream out("trapez.out");
out<<nrt<<'\n';
return 0;
}