Pagini recente » Cod sursa (job #1695221) | Cod sursa (job #831503) | Cod sursa (job #146274) | Cod sursa (job #794686) | Cod sursa (job #663157)
Cod sursa(job #663157)
#include <cstdio>
#include <cmath>
#include <algorithm>
#define egal 0.00000000001
#define inf 1000000000
#define MAX 1050
using namespace std;
struct punct
{
int x, y;
}v[MAX];
int n, nr, sol;
double panta[MAX*MAX];
void citire()
{
freopen("trapez.in", "r", stdin);
scanf("%d\n", &n);
for(int i = 1; i <= n; i++)
{
scanf("%d %d\n", &v[i].x, &v[i].y);
}
fclose(stdin);
}
void rezolvare()
{
int k = 0;
for(int i = 1; i < n; i++)
{
for(int j = i + 1; j <= n; j++)
{
if(v[i].x - v[j].x == 0)
{
panta[k++] = inf;
}
else
{
panta[k++] = (double)(v[j].y - v[i].y) / (double)(v[j].x - v[i].x);
}
}
}
sort(panta, panta + k);
for(int i = 0; i < k; i++)
{
if(abs(panta[i] - panta[i - 1]) < egal)
{
nr++;
}
else
{
sol += (nr * (nr + 1) / 2);
nr = 0;
}
}
}
void afisare()
{
freopen("trapez.out", "w", stdout);
printf("%d", sol);
fclose(stdout);
}
int main()
{
citire();
rezolvare();
afisare();
return 0;
}