Pagini recente » Cod sursa (job #1722361) | Cod sursa (job #1533674) | Cod sursa (job #1406659) | Cod sursa (job #1602122) | Cod sursa (job #443534)
Cod sursa(job #443534)
#include<fstream>
#include<vector>
#define dmax 1004
#define er 0.00000001
using namespace std;
ifstream in("trapez.in");
ofstream out("trapez.out");
long long n,sol;
double u;
struct point
{ long long x;
long long y;
} p[dmax];
vector<double>m;
vector<double>::iterator it;
typedef int (*compfn)(const void *,const void *);
int sf(struct point *a,struct point *b)
{ if(a->x != b->x)
return a->x - b->x;
return a->y - b->y;
}
double mx(double k)
{ if(k<0)return -1 * k;
return k;
}
int main()
{ int i,j;
in>>n;
for(i=0;i<n;i++)
in>>p[i].x>>p[i].y;
in.close();
qsort( (void*)&p, n, sizeof(struct point), (compfn)sf );
for(i=1;i<n;i++)
for(j=0;j<i;j++)
{ u=( (double)p[i].y - (double)p[j].y) / (double)(p[i].x - (double)p[j].x);
for(it=m.begin();it<m.end();it++)
{ if( max(u-*it,*it-u) <= er)
sol++;
}
m.push_back(u);
}
out<<sol;
out.close();
return 0;
}