Pagini recente » Cod sursa (job #27520) | Cod sursa (job #521648) | Cod sursa (job #1823980) | Cod sursa (job #394551) | Cod sursa (job #491454)
Cod sursa(job #491454)
// infoarena: problema/trapez //
#include <fstream>
#include <map>
#include <cmath>
#define INF 1<<30
#define MAXN 1010
using namespace std;
ifstream in("trapez.in");
ofstream out("trapez.out");
struct PUNCT
{
int x,y;
};
double panta(PUNCT a, PUNCT b)
{
if(a.y == b.y)
return INF;
return (a.x-b.x)/(a.y-b.y);
}
map<double,int> m;
map<double,int>::iterator it;
PUNCT p[MAXN];
int n,i,j,s;
int main()
{
in>>n;
for(i=1; i<=n; i++)
in>>p[i].x>>p[i].y;
for(i=1; i<n; i++)
for(j=i+1; j<=n; j++)
if(panta(p[i], p[j]))
++ m[panta(p[i], p[j])];
else
m[panta(p[i], p[j])] = 1;
for(it=m.begin(); it!=m.end(); ++it)
s += it->second * (it->second-1) / 2;
out<< s;
return 0;
}