Pagini recente » Cod sursa (job #470944) | Cod sursa (job #284325) | Cod sursa (job #2433069) | Cod sursa (job #1499549) | Cod sursa (job #476747)
Cod sursa(job #476747)
#include <fstream>
#include <algorithm>
using namespace std;
typedef struct{
int x, y;
} unghi;
unghi panta[1<<20];
int i,j,x[1005],y[1005],n,k,total;
bool ok;
bool cmp(unghi aa,unghi bb)
{
double a,b;
a=(double)aa.x/(double)aa.y;
b=(double)bb.x/(double)bb.y;
return(a<b);
return(a<b);
}
int main()
{
long long a,b,particular;
ifstream fi("trapez.in");
ofstream fo("trapez.out");
fi>>n;
for(i=1;i<=n;i++)
fi>>x[i]>>y[i];
k=0; particular=0;
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
{
if(y[i]==y[j])
particular++;
else
{
panta[++k].x=x[i]-x[j];
panta[k].y=y[i]-y[j];
}
}
sort(panta+1,panta+k+1,cmp);
n=0; total=0; ok=0;
for(i=2;i<=k;i++)
{
a=panta[i-1].x*panta[i].y;
b=panta[i-1].y*panta[i].x;
if(a==b) { n++; ok=1; }else if(ok)
{
total+=(n*(n+1))/2;
n=0;
ok=0;
}
}
if(ok) total+=(n*(n+1))/2;
total+=(particular*(particular-1))/2;
fo<<total<<"\n";
fo.close();
return 0;
}