Pagini recente » Cod sursa (job #1339661) | Cod sursa (job #2553281) | Cod sursa (job #747723) | Cod sursa (job #1441963) | Cod sursa (job #2051400)
#include<fstream>
#include<cmath>
#include<stdio.h>
using namespace std;
struct punct{
double x,y;
};
double dist(punct a,punct b)
{
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
bool comparedoub(double a,double b)
{
if(abs(a-b)<0.001) return 1;
else return 0;
}
int main()
{
ifstream fin("triang.in");
ofstream fout("triang.out");
punct p[1500];
int N;fin>>N;
int nr=0;
for(int i=0;i<N;i++)
{
fin>>p[i].x;
fin>>p[i].y;
}
double aux;
for(int i=0;i<N-2;i++)
{
for(int j=i+1;j<N-1;j++)
{
aux=dist(p[i],p[j]);
for(int k=j+1;k<N;k++)
{
if( comparedoub(aux,dist(p[i],p[k]))) if(comparedoub(aux,dist(p[j],p[k])) ) nr++;
//printf("%d %d %d %d\n",i,j,k,comparedoub(dist(p[i],p[j]),dist(p[i],p[k]))&&comparedoub(dist(p[i],p[j]),dist(p[j],p[k])) );
}
}
}
/* double aux;
//int nr2=0;
for(int i=0;i<N-2;i++)
{
//nr2=0;
aux=dist(p[i],p[i+1]);
for(int j=i+2;j<N;j++)
{
if(comparedoub(aux,dist(p[j],p[i+1]))) if(comparedoub(aux,dist(p[i+1],p[j]))) nr++;
printf("%d %d %d %d\n",i,i+1,j,((comparedoub(aux,dist(p[j],p[i+1])))&&(comparedoub(aux,dist(p[i+1],p[j])))));
}
}
*/
fout<<nr;
}