Pagini recente » Cod sursa (job #802040) | Cod sursa (job #2068800) | Cod sursa (job #2004574) | Profil RalucaChis | Cod sursa (job #953025)
Cod sursa(job #953025)
#include<cstdio>
#include<vector>
#include<algorithm>
#define NMAX 1005
FILE *f=fopen("trapez.in","r");
FILE *g=fopen("trapez.out","w");
using namespace std;
int n,Answer,numb;
double slope[500010];
struct point {int x,y;};
point v[NMAX];
inline double Incline ( const point A , const point B )
{
if(A.x == B.x )
return 1<<30;
else
return (double)( B.y-A.y)/(B.x-A.x);
}
void Read( void )
{
fscanf(f,"%d",&n);
for( int i(1) ; i <= n ; ++i )
{
fscanf(f,"%d%d",&v[i].x,&v[i].y);
for(int ii(1) ; ii < i ; ++ii )
slope[++numb]=Incline(v[i],v[ii]);
}
fclose(f);
}
void Solve ( void )
{
sort(slope+1,slope+numb+1);
int i;
for( i=1 ; i <= numb; ++i )
{
int start=i;
++i;
while( slope[start] == slope[i] && i <= numb)
++i;
Answer+=(i-start) *( i-start-1 )/2;
--i;
}
}
void Write ( void )
{
fprintf(g,"%d",Answer);
fclose(g);
}
int main ( void )
{
Read();
Solve();
Write();
return 0;
}