Pagini recente » Cod sursa (job #2710938) | Cod sursa (job #2127696) | Cod sursa (job #2555530) | Cod sursa (job #1283603) | Cod sursa (job #305971)
Cod sursa(job #305971)
#include<stdio.h>
#include<vector>
#include<algorithm>
#include <functional>
using namespace std;
#define NMAX 1001
int x[NMAX],y[NMAX],n;
struct dreapta
{
int numitor,numarator;
};
vector<dreapta> m;
struct cmp : public binary_function<dreapta, dreapta, bool>
{
bool operator()(dreapta a,dreapta b)
{
return a.numarator*b.numitor>a.numitor*b.numarator;
}
};
int main()
{
int i,j,contor=0;
dreapta panta;
cmp mata;
m.reserve(NMAX*NMAX);
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d%d",&x[i],&y[i]);
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
{
panta.numarator=x[j]-x[i];
panta.numitor=y[j]-y[i];
m.push_back(panta);
}
sort(m.begin(),m.end(),cmp());
int n=m.size();
for(i=0;i<n-1;i++)
{
if(!mata(m[i],m[i+1])&&!mata(m[i+1],m[i]))
contor++;
}
printf("%d",contor);
return 0;
}