Pagini recente » Cod sursa (job #1251872) | Cod sursa (job #2204319) | Cod sursa (job #1832035) | Cod sursa (job #875859) | Cod sursa (job #626467)
Cod sursa(job #626467)
#include <fstream>
#include <algorithm>
using namespace std;
struct punct
{
int x, y;
};
punct a[1005];
int nr, n, np;
double p[1000005];
void Citire()
{
ifstream f("trapez.in");
f>>n;
int i;
for (i=1; i<=n; i++)
f>>a[i].x>>a[i].y;
f.close();
}
void Rez()
{
int i, j, k=0;
for (i=1; i<=n; i++)
for (j=i+1; j<=n; j++)
if (a[j].x == a[i].x)
p[k++] = 2000000000;
else
p[k++] = (1.0*(a[j].y - a[i].y))/(1.0*(a[j].x - a[i].x)); // y2-y1/x2-x1
sort (p, p+k);
np = k;
double x;
for (i=0; i<np; )
{
x = p[i];
k=0;
while (i<np && p[i] == x)
{
i++;
k++;
}
nr += (k*(k-1))/2;
}
}
void Scriere()
{
ofstream g("trapez.out");
g<<nr<<"\n";
g.close();
}
int main ()
{
Citire();
Rez();
Scriere();
return 0;
}