Pagini recente » Cod sursa (job #2551113) | Cod sursa (job #397212) | Cod sursa (job #1613777) | Cod sursa (job #495677) | Cod sursa (job #1032737)
#include <fstream>
#include<algorithm>
#include<ctime>
#include<cstdlib>
#include<stdio.h>
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
long i,j,n,nr=0,nr2=0,q,k=0;
double a[1001],b[1001],v[5000501],aux;
void qksort(long st,long dr)
{long i=st,j=dr;
double piv,aux;
piv=v[i+rand()%(j-i+1)];
while(i<=j)
{
while(v[i]<piv)
i++;
while(v[j]>piv)
j--;
if(i<=j)
{aux=v[i];v[i]=v[j];v[j]=aux;i++;j--;}
}
if(st<j)
qksort(st,j);
if(i<dr)
qksort(i,dr);
}
int main()
{srand(time(0));
f>>n;
for(i=1;i<=n;i++)
f>>a[i]>>b[i];
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(a[j]-a[i]==0)
{if(k)
nr2=(k*(k+1))/2;
k++;
}
else
{nr++;
v[nr]=(b[j]-b[i])/(a[j]-a[i]);
}
qksort(1,nr);
i=1;j=0;q=0;
while(i<nr)
{if(v[i]==v[i+1])
{j++;
q=(j*(j+1))/2;
}
else
{nr2+=q;q=0;j=0;
}
i++;
}
nr2+=q;
g<<nr2;
f.close();g.close();
return 0;
}