Pagini recente » Cod sursa (job #2860290) | Cod sursa (job #2454157) | Cod sursa (job #2468927) | Cod sursa (job #3131066) | Cod sursa (job #2620535)
#include <iostream>
#include <fstream>
#include <algorithm>
#define Maxx 1001
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
double P[Maxx*(Maxx)/2+1],val;
long X[Maxx],Y[Maxx],N,cnt,secv,nr;
int main()
{
f >> N;
for ( int i=1;i<=N;i++ )
f >> X[i] >> Y[i];
for ( int i=1;i<N;i++ )
for ( int j=i+1;j<=N;j++ )
if ( X[i] != (-1)*X[j] ) ///daca abscisele nu sunt opuse pentru a nu imparti la 0
P[++cnt] = (Y[j]-Y[i])/(X[j]-X[i]); ///aflam pantele
sort ( P+1,P+cnt+1 );
secv = 1;
for ( int i=1;i<cnt;i++ )
if ( P[i] == P[i+1] ) secv++;
else
{
nr = nr+(secv*(secv-1))/2; ///combinari de n luate cate 2
secv = 1;
}
nr = nr+(secv*(secv-1))/2;
g << nr;
return 0;
}