Pagini recente » Cod sursa (job #2628955) | Cod sursa (job #2785496) | Clasament oji_2012_11-12_sim | Cod sursa (job #211912) | Cod sursa (job #900754)
Cod sursa(job #900754)
#include<fstream>
#include<algorithm>
#define dim 1006
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
//Cream vectorul oricand vrem.Pt exemple vezi linia 19
struct cub
{
int x,y;
}
v[dim];
int i,n,j,sub,solutia,nr;
int main()
{
f>>n;
for(i=1;i<=n;++i)
{
f>>v[i].x>>v[i].y;
}
//Cream segmentele A-B,B-C,C-D,...,N-M,...
for(i=1;i<=n;i++)
{
for(j=i+1;j<=n;++j)
{
a=(v[j].x-v[i].x);
b=(v[j].y-v[i].y);
p[++nr]=(double)(a/b);
}
}
//sort(x,y) aranjeaza elementele x si y is ordine crescatoare oricare ar fi ele
sort(p+1,p+1+nr);
//De nr ori face ++i si sub++
for(i=1;i<=nr;++i)
{
sub=1;
while(p[i+1]==p[i])
{
++i;
sub++;
}
solutia+=sub*(sub-1)/2;
}
g<<solutia<<'\n';
}