Pagini recente » Cod sursa (job #173619) | Rating Ionut-Valeriu Tablet (Kaneki) | Cod sursa (job #506738) | Cod sursa (job #153950) | Cod sursa (job #777072)
Cod sursa(job #777072)
#include <fstream>
#include <vector>
#include <cmath>
#include <algorithm>
#define EPS 0.00001
#define PI pair<int, int>
#define x first
#define y second
#define N 1010
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
int n,i,j,ANS,k=1;
PI V[N];
vector<PI> Tg;
bool Equal (PI a, PI b)
{
return (a.x*b.y==b.x*a.y);
}
bool Compare(PI a, PI b)
{
if (a.x*b.y==b.x*a.y) return 0;
bool r=(a.x*b.y<b.x*a.y);
if (b.y<0) r=!r;
if (a.y<0) r=!r;
return r;
}
int main ()
{
f >> n;
for (i=1;i<=n;i++)
f >> V[i].x >> V[i].y;
for (i=1;i<=n;i++)
for (j=i+1;j<=n;j++)
Tg.push_back(make_pair(V[i].y-V[j].y,V[i].x-V[j].x));
sort(Tg.begin(),Tg.end(),Compare);
for (i=1;i<Tg.size();i++)
if (Equal(Tg[i],Tg[i-1]))
k++;
else
{
ANS+=(k*k-k)/2;
k=1;
}
ANS+=(k*k-k)/2;
g << ANS << '\n';
f.close();g.close();
return 0;
}