Pagini recente » Cod sursa (job #2208204) | Cod sursa (job #2353234) | Cod sursa (job #948050) | Cod sursa (job #2404459) | Cod sursa (job #1081947)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fi("trapez.in");
ofstream fo("trapez.out");
double x[1000001];
struct point {int x,y;};
point a[1001];
int n, t;
long long sum=0;
int main() {
fi>>n;
for(int i=1;i<=n;i++) fi>>a[i].x>>a[i].y;
for(int i=1;i<n;i++)
for(int j=i+1;j<=n;j++)
if(a[i].x-a[j].x!=0) x[++t]=(double)(a[i].y-a[j].y)/(double)(a[i].x-a[j].x);
else x[++t]=0x3f3f3f3f;
sort(x+1,x+t+1);
int nr=1;
for(int i=2;i<=t;i++)
if(x[i]==x[i-1]) nr++;
else {sum+=(long long)(nr*(nr-1))/2;nr=1;}
sum+=(long long)(nr*(nr-1))/2;
fo<<sum;
return 0;
}