Pagini recente » Cod sursa (job #2350992) | Cod sursa (job #1528835) | Cod sursa (job #3260951) | Cod sursa (job #2064826) | Cod sursa (job #1137862)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int cmmdc(int a,int b)
{
if ((a==b)&&(b==0))
return 1;
if (b==0)
return a;
return cmmdc(b,a%b);
}
void redo(pair <int,int> fr)
{
int d=cmmdc(fr.first,fr.second);
fr.first=fr.first/d;
fr.second=fr.second/d;
}
pair <int,int> fr;
int a,b,n,i,x,y,i1,k;
vector <pair <int,int> > v,vl;
bool fless(pair <int,int> const f1, pair <int,int> const f2)
{
return (f1.first*f2.second)<(f2.first*f1.second);
}
int fmod(int nr)
{
if (nr<0)
return -nr;
return nr;
}
int main(void)
{
FILE * f;
f=fopen("trapez.in","r");
ofstream g("trapez.out");
fscanf(f,"%d",&n);
for (i=1;i<=n;i++)
{
fscanf(f,"%d%d",&x,&y);
v.push_back(make_pair(x,y));
}
for (i=0;i<v.size();i++)
for (i1=i+1;i1<v.size();i1++)
{
y=v[i1].second-v[i].second;
x=v[i1].first-v[i].first;
y=fmod(y);
x=fmod(x);
fr.first=y;
fr.second=x;
redo(fr);
vl.push_back(fr);
}
sort(vl.begin(),vl.end(),&fless);
for (i=1;i<vl.size();i++)
{
if ((vl[i].first==vl[i-1].first)&&(vl[i].second==vl[i-1].second))
k++;
//cout<<vl[i].first<<' '<<vl[i].second<<'\n';
}
g<<k;
return 0;
}