Pagini recente » Cod sursa (job #1068294) | Cod sursa (job #378359) | Cod sursa (job #1487728) | Cod sursa (job #2668743) | Cod sursa (job #261812)
Cod sursa(job #261812)
#include<fstream.h>
long double v[1000001],p,q;
struct {int x,y;} a[1001];
int i,sol,n,j,k;
int pozitie ( int i, int j)
{ long double aux;
int di=1, dj=0,aux2;
while(i<j)
{if(v[i]>v[j]) {aux=v[i]; v[i]=v[j]; v[j]=aux;
aux2=di; di=dj; dj=aux2;
}
i+=di;
j-=dj;
}
return i;
}
void quick(int s, int d)
{ if(s<d)
{ int p=pozitie(s,d);
quick(s,p-1);
quick(p+1,d);
}
}
int main()
{
ifstream f("trapez.in");
ofstream g("trapez.out");
f>>n;
for(i=1;i<=n;i++) f>>a[i].x>>a[i].y;
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
{ if(a[i].x==a[j].x) v[++k]=5000;
else
{ p=a[i].y-a[j].y;
q=a[i].x-a[j].x;
v[++k]=p/q;
}
}
quick(1,k);
for(i=1;i<k;i++)
if(v[i]==v[i+1])
{j=i+1; while(v[i]==v[j]) {sol++; j++;}}
g<<sol;
f.close();
g.close();
return 0;
}