Pagini recente » Cod sursa (job #411260) | Cod sursa (job #2829732) | Cod sursa (job #2195535) | Cod sursa (job #55733)
Cod sursa(job #55733)
#include <stdio.h>
#include <math.h>
FILE *in,*out;
int ct,sol[1501],n;
float a[1501][3];
void citire()
{
int i;
in=fopen("triang.in","r");
fscanf(in , "%d",&n);
for (i=1 ; i<=n ; i++)
fscanf(in , "%f%f",&a[i][1],&a[i][2]);
fclose(in);
}
int cond(int k)
{
float x,y;
if (k>1)
if (sol[k-1]>=sol[k]) return 0;
if (k==3)
{
x=(float)sqrt(pow(a[sol[2]][1]-a[sol[1]][1],2)+pow(a[sol[2]][2]-a[sol[1]][2],2));
y=(float)sqrt(pow(a[sol[3]][1]-a[sol[2]][1],2)+pow(a[sol[3]][2]-a[sol[2]][2],2));
if (x!=y) return 0;
y=sqrt(pow(a[sol[3]][1]-a[sol[1]][1],2)+pow(a[sol[3]][2]-a[sol[1]][2],2));
if (x!=y) return 0;
}
return 1;
}
void back(int k)
{
int i;
for (i=1 ; i<=n ; i++)
{
sol[k]=i;
if (cond(k))
if (k==3) ct=ct+1;
else back(k+1);
}
}
int main(void)
{
citire();
back(1);
out=fopen("triang.out","w");
fprintf(out , "%d",ct);
fclose(out);
return 0;
}