Pagini recente » Cod sursa (job #2380630) | Cod sursa (job #1556494) | Cod sursa (job #1425337) | Cod sursa (job #1849814) | Cod sursa (job #1740188)
#include <cstdio>
#include <algorithm>
#define MAXN 1000
#define INF 2000000005
using namespace std;
struct punct{
int x, y;
} v[MAXN];
double pan[(MAXN-1)*MAXN/2];
int main()
{
FILE *fin, *fout;
int n, i, j, nr, ans, m;
fin=fopen("trapez.in", "r");
fscanf(fin, "%d", &n);
for(i=0; i<n; i++)
fscanf(fin, "%d%d", &v[i].x, &v[i].y);
fclose(fin);
m=0;
for(i=0; i<n-1; i++)
for(j=i+1; j<n; j++)
if(v[i].x==v[j].x)
pan[m++]=INF;
else
pan[m++]=(1.0*v[i].y-v[j].y)/(v[i].x-v[j].x);
sort(pan, pan+m);
nr=1; ans=0;
for(i=1; i<m; i++)
if(pan[i]==pan[i-1])
++nr;
else{
ans+=nr*(nr-1)/2;
nr=1;
}
ans+=nr*(nr-1)/2;
fout=fopen("trapez.out", "w");
fprintf(fout, "%d\n", ans);
fclose(fout);
return 0;
}