Pagini recente » Cod sursa (job #2465344) | Cod sursa (job #2911035) | Cod sursa (job #2537504) | Cod sursa (job #414552) | Cod sursa (job #351093)
Cod sursa(job #351093)
#include <stdio.h>
#include <algorithm>
using namespace std;
FILE *f,*s;
int n,i,j,k,l;
struct punct
{
long long int x;
long long int y;
};
punct v1[1005],v2[1000005];
int cmp(punct a, punct b)
{
if(a.x!=b.x)
return a.x<b.x;
else
return a.y<b.y;
}
int main()
{
f=fopen("trapez.in","r");
s=fopen("trapez.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%lld %lld",&v1[i].x,&v1[i].y);
k=1;
for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
v2[k].x=v1[i].x-v1[j].x;
v2[k].y=v1[i].y-v1[j].y;
if(v2[k].x<0)
v2[k].x*=-1;
if(v2[k].y<0)
v2[k].y*=-1;
k++;
}
}
k--;
sort(v2+1,v2+k+1,cmp);
int rez=0;
for(i=2;i<=k;i++)
{
if(v2[i].x*v2[i-1].y==v2[i].y==v2[i-1].x)
rez++;
}
int r=0;
for(i=1;i<=rez;i++)
r+=i*(rez-i);
if(rez==1)
r=1;
fprintf(s,"%d",r);
fclose(s);
return 0;
}