Pagini recente » Cod sursa (job #2798258) | Cod sursa (job #2062820) | Cod sursa (job #3295630) | Cod sursa (job #178070) | Cod sursa (job #2555881)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f ("trapez.in");
ofstream g ("trapez.out");
int n, lg;
double panta[1000005];
struct punct {
int x, y;
}v[1005];
void read ()
{
int i, xx, yy;
f >> n;
for (i=1; i<=n; i++)
{
f >> xx >> yy;
v[i].x = xx, v[i].y = yy;
}
}
void calcpanta ()
{
int i, j;
double tangenta, xx, yy;
for (i=1; i<n; i++)
{
for (j=i+1; j<=n; j++)
{
xx = v[i].x - v[j].x;
yy = v[i].y - v[j].y;
tangenta = yy / xx;
lg ++, panta[lg] = tangenta;
}
}
}
void arraysort ()
{
sort(panta+1, panta+lg+1);
}
void afisare ()
{
int i, j;
for (i=1; i<=lg; i++)
g << panta[i] << " ";
}
void solve ()
{
int i, j, aux, rez = 0;
for (i=1; i<=lg; i++)
{
if (panta[i] == panta[i+1])
{
j = i;
while (panta[j] == panta[j+1] && j+1 <= lg)
j ++;
aux = j-i+1;
if (aux > 1)
rez = rez + (((aux-1) * aux)/2);
i = j;
}
}
g << rez;
}
int main()
{
read();
calcpanta();
arraysort();
solve();
return 0;
}