Pagini recente » Cod sursa (job #1232059) | Cod sursa (job #3165134) | Cod sursa (job #2509837) | Cod sursa (job #2370196) | Cod sursa (job #1537173)
#include <stdio.h>
#include <algorithm>
using namespace std;
const int INF = 2100000;
struct puncte
{
int x, y;
}v[1001];
struct drepte
{
int a, b;
}p[1000 * 1000 +1];
int nr = 0;
double abs(double x)
{
if( x < 0)
return -x;
else
return x;
}
bool cmp (drepte x, drepte y)
{
long long val1 = (long long)x.a * y.b;
long long val2 = (long long)x.b * y.a;
if(val1 <= val2)
return true;
return false;
}
int main()
{
FILE *fin, *fout;
fin = fopen("trapez.in", "r");
fout = fopen("trapez.out", "w");
int n;
fscanf(fin, "%d", &n);
for(int i = 1; i <= n; i++)
fscanf(fin, "%d %d", &v[i].x, &v[i].y);
for(int i = 1; i <= n; i++)
{
for(int j = i + 1; j <= n; j++)
{
p[++nr].a = v[j].y - v[i].y;
p[nr].b = v[j].x - v[i].x;
}
}
sort(&p[1], &p[nr + 1], cmp);
int cnt = 0;
for(int i = 2; i <= nr; i++)
{
if((long long)p[i].a * p[i - 1].b == (long long)p[i].b * p[i - 1].a)
cnt++;
}
fprintf(fout, "%d", cnt);
return 0;
}