Pagini recente » Cod sursa (job #2289153) | Cod sursa (job #908731) | Cod sursa (job #2339314) | Cod sursa (job #1753305) | Cod sursa (job #1838563)
#include <fstream>
#include <vector>
#include <unordered_map>
#include <algorithm>
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
int n,i,j,x,y,d,v,m;
long long sol;
double a[1000*1001/2+10];
vector<pair<int,int>> P;
int main()
{
f>>n;
for(i=1;i<=n;i++)
{
f>>x>>y;
P.push_back(make_pair(x,y));
}
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
x=P[i].first-P[j].first;
y=P[i].second-P[j].second;
if(x==0){v++;continue;}
a[++m]=1.0*y/x;
}
sol=1LL*v*(v-1)/2;
sort(a+1,a+m+1);
for(i=1;i<m;i++)
{
j=i;
while(a[j+1]-a[i]<0.00000000001)
j++;
sol+=1LL*(j-i+1)*(j-i)/2;
i=j;
}
g<<sol;
return 0;
}