Pagini recente » Cod sursa (job #518280) | Cod sursa (job #1927637) | Cod sursa (job #834523) | Cod sursa (job #2181439) | Cod sursa (job #483702)
Cod sursa(job #483702)
#include<fstream.h>
#include<stdlib.h>
#include<vector>
#include<algorithm>
const int NMAX=1005;
using namespace std;
struct punct{long x,y;};
long long rez,n,nr,part;
punct p[NMAX],o[NMAX*NMAX];
vector<punct> v;
void cit()
{ifstream fin("trapez.in");
fin>>n;
long i;
for(i=1;i<=n;++i)
fin>>p[i].x>>p[i].y;
fin.close();
}
bool crt(punct a,punct b)
{long x1,y1,x2,y2;
x1=(p[a.x].x-p[a.y].x);
y1=(p[a.y].y-p[a.x].y);
x2=(p[b.x].x-p[b.y].x);
y2=(p[b.y].y-p[b.x].y);
return y1*x2<x1*y2;
}
ofstream fout("trapez.out");
void solve()
{long i,j;
long long k;
long x1,y1,x2,y2;
punct a,b;
for(i=1;i<=n;++i)
for(j=i+1;j<=n;++j)
if(p[i].x==p[j].x)
++part;
else
o[++nr].x=i,o[nr].y=j;
sort(o+1,o+nr+1,crt);
k=1;
for(i=1;i<=nr;++i)
for(j=i+1;j<=nr;++j)
{a=o[i];b=o[j];
x1=(p[a.x].x-p[a.y].x);
y1=(p[a.y].y-p[a.x].y);
x2=(p[b.x].x-p[b.y].x);
y2=(p[b.y].y-p[b.x].y);
if(y1*x2==x1*y2)
++rez;
}
//rez+=(k*(k-1))/2;
rez+=(part*(part-1))/2;
}
void afis()
{long i;
fout<<rez<<'\n';
fout.close();
}
int main()
{cit();
solve();
afis();
return 0;
}