Mai intai trebuie sa te autentifici.
Cod sursa(job #516663)
Utilizator | Data | 25 decembrie 2010 15:21:14 | |
---|---|---|---|
Problema | Trapez | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <fstream>
using namespace std;
struct panta {int x,y;} v[1<<20],a[1<<10];
int n,m;
ifstream in("trapez.in");
ofstream out("trapez.out");
inline bool cmp(panta a,panta b)
{
return a.x*b.y<a.y*b.x;
}
inline bool egal(panta a,panta b)
{
return a.x*b.y==a.y*b.x;
}
int main()
{
int i,j,nr=0;
in>>n;
for (i=1;i<=n;i++)
in>>a[i].x>>a[i].y;
for (i=1;i<n;i++)
for (j=i+1;j<=n;j++)
{
v[++m].x=a[i].y-a[j].y;
v[m].y=a[i].x-a[j].x;
}
sort(v+1,v+m+i,cmp);
for (i=2,n=1;i<=m;i++)
if (egal(v[i],v[i-1]))
n++;
else
{
nr+=n*(n-1)/2;
n=1;
}
out<<nr<<"\n";
return 0;
}