Pagini recente » Cod sursa (job #1517772) | Cod sursa (job #3290525) | Cod sursa (job #160673) | Cod sursa (job #546961) | Cod sursa (job #42369)
Cod sursa(job #42369)
#include<stdio.h>
#include<math.h>
#define input "triang.in"
#define output "triang.out"
#define dim 101
void citire();
void ordonare();
int cauta(int p, int q);
int k;
double n, i, j, a[3][dim], x, y, d;
FILE *in, *out;
int main()
{
in = fopen (input, "r");
out = fopen (output, "w");
citire();
ordonare();
for(i=1; i<=n; i++)
for(j=i+1; j<=n; j++)
{
d = sqrt(abs((a[1][i]-a[1][j])*(a[1][i]-a[1][j])-(a[2][i]-a[2][j])*(a[2][i]-a[2][j])));
x = a[2][i]-a[2][j];
y = a[1][i]-a[1][j]+(d*1,732)/2;
if(cauta(x,y))
k++;
}
fprintf(out, "%d", k+1);
return 0;
}
void citire()
{
double i;
fscanf(in, "%lf", &n);
for(i=1; i<=n; i++)
fscanf(in, "%lf%lf", &a[1][i], &a[2][i]);
}
void ordonare()
{
double i, j, aux;
for(i=1; i<=n; i++)
for(j=i+1; j<=n; j++)
if(a[1][i]>a[1][j])
{
aux = a[1][j];
a[1][j] = a[1][i];
a[1][i] = aux;
aux = a[2][j];
a[2][j] = a[2][i];
a[2][i] = aux;
}
}
int cauta(int p, int q)
{
double m=n/2, ls=1, ld=n, gasit=0;
while(ls<=ld && !gasit)
{
m=(ls+ld)/2;
if(a[1][m] == p && a[2][m] == q)
gasit = 1;
else
if(a[1][m] < p)
ls = m+1;
else
ld = m-1;
}
if(gasit)
return 1;
return 0;
}