Mai intai trebuie sa te autentifici.
Cod sursa(job #2620535)
Utilizator | Data | 29 mai 2020 00:42:36 | |
---|---|---|---|
Problema | Trapez | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.84 kb |
#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;
}