Pagini recente » Cod sursa (job #802601) | Cod sursa (job #611882) | Cod sursa (job #1348926) | Cod sursa (job #3155354) | Cod sursa (job #2295910)
#include <fstream>
#include <algorithm>
#define nmax 1001
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
int n;
struct pct
{ int x,y;
};
struct panta
{ int sus,jos,val;
};
pct a[nmax];
panta v[1000000];
int comp(panta a,panta b)
{ return (a.sus*b.jos)<=(b.sus*a.jos);
}
int comp2(panta a,panta b)
{if((a.sus*b.jos)==(b.sus*a.jos)) return 1;
return 0;
}
int main()
{ fin>>n;
int i,j;
for(i=1; i<=n; i++) fin>>a[i].x>>a[i].y;
int k=0;
for(i=1; i<=n; i++)
for(j=i+1; j<=n; j++)
{int sus=a[i].y-a[j].y;
int jos=a[i].x-a[j].x;
if(jos!=0) {k++; v[k].sus=sus;
v[k].jos=jos;
}
}
sort(v+1,v+k+1,comp);
int nr,val=0;;
for(i=1; i<k; i++)
if(comp2(v[i],v[i+1])==1)
{int poz=i+1;
nr=1;
while(comp2(v[i],v[poz])==1) {poz++; nr++;}
i=poz+1;
val+=(nr*(nr-1))/2;
}
fout<<val;
return 0;
}