Pagini recente » Cod sursa (job #2727206) | Cod sursa (job #3179428) | Cod sursa (job #2456922) | Cod sursa (job #2518010) | Cod sursa (job #625411)
Cod sursa(job #625411)
#include<fstream>
#include<algorithm>
using namespace std;
int n,m;
struct Punct{int x,y;};
Punct A[1005];
double Panta[1000010];
long long sol;
void Citire()
{
int i;
ifstream fin("trapez.in");
fin>>n;
for(i=0;i<n;i++)
fin>>A[i].x>>A[i].y;
fin.close();
}
void Rezolvare()
{
int i,j;
double aux;
long long nr;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
if(A[i].x==A[j].x)
Panta[m++]=2000000000.0;
else
{
aux=A[i].y-A[j].y;
aux=aux/(A[i].x-A[j].x);
Panta[m++]=aux;
}
}
sort(Panta,Panta+m);
i=0;
j=0;
while(i<m)
{
while(j<m-1 && Panta[j+1]==Panta[i])
j++;
nr=j-i+1;
sol+=nr*(nr-1)/2;
i=j+1;
}
}
void Afisare()
{
ofstream fout("trapez.out");
fout<<sol<<"\n";
fout.close();
}
int main()
{
Citire();
Rezolvare();
Afisare();
return 0;
}