Pagini recente » Cod sursa (job #2096028) | Cod sursa (job #665671) | Cod sursa (job #68938) | Cod sursa (job #2945870) | Cod sursa (job #2614485)
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream cin("trapez.in");
ofstream cout("trapez.out");
int n;
struct tr
{
long long x,y,p;
}v[1005];
vector <int> nr;
void read()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>v[i].x>>v[i].y;
if(!v[i].x || !v[i].y)
{
v[i].p=0;
continue;
}
v[i].p=v[i].y/v[i].x;
}
}
bool cmp(tr a,tr b)
{
return a.p<b.p;
}
void solve()
{
sort(v+1,v+n+1,cmp);
int len=1;
for(int i=1;i<n;i++)
if(v[i].p==v[i+1].p)
len++;
else
{
if(len>1)
nr.push_back(len);
len=1;
}
int ans=0;
for(int i=0;i<nr.size();i++)
{
ans+=(nr[i]/2)*(nr[i]/2-1)/2;
for(int j=i+1;j<nr.size();j++)
ans+=(nr[i]*(nr[i]-1)/2)*(nr[j]*(nr[j]-1)/2);
}
cout<<ans;
}
int main()
{
read();
solve();
return 0;
}