Pagini recente » Cod sursa (job #2951003) | Cod sursa (job #3162305) | Cod sursa (job #2377823) | Cod sursa (job #2947088) | Cod sursa (job #1412509)
#include<cstdio>
#include<algorithm>
using namespace std;
#define INF 200000
#define eps 1e-10
struct pct
{
int x, y;
};
pct P[1001];
double tg[1001*1001];
int main()
{
FILE *in, *out;
in=fopen("trapez.in", "r");
out=fopen("trapez.out", "w");
int i, j, n;
fscanf(in, "%d", &n);
for(i=1; i<=n; ++i)
fscanf(in, "%d%d", &P[i].x, &P[i].y);
int k=0;
for(i=1; i<=n; i++)
for(j=i+1; j<=n; j++)
if(P[i].x!=P[j].x)
tg[++k]=1.0*(P[i].y-P[j].y)/(P[i].x-P[j].x);
else
tg[++k]=INF;
sort(tg+1, tg+k+1);
int rasp=0, tmp=1;
tg[0]=INF+100;
for(j=1; j<=k; j++)
if(tg[j]-tg[j-1]>=-eps && tg[j]-tg[j-1]<=eps)
tmp++;
else
{
rasp+=(long long)tmp*(tmp-1)/2;
tmp=1;
}
rasp+=(long long)tmp*(tmp-1)/2;
fprintf(out, "%d", rasp);
return 0;
}