Pagini recente » Cod sursa (job #3211911) | Cod sursa (job #515213) | Cod sursa (job #3196235) | Cod sursa (job #1945508) | Cod sursa (job #1807238)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("patrate3.in");
ofstream fout("patrate3.out");
struct punct
{
float a;
int b,c;
}
punct[1000001];
int n,i,j,k,matr[1001][1001],prim,ultim,c[1001],varf,nr,patrate;
float x[1001],y[1001],d;
bool viz[1001],ok[1001],l;
void bfs()
{
int k;
while(prim<=ultim)
{
varf=c[prim];
for(k=1;k<=n;k++)
if(matr[varf][k]==1&&viz[k]==0)
{
ultim++;
c[ultim]=k;
viz[k]=1;
}
prim++;
}
}
int main()
{
fin>>n;
for(i=1;i<=n;i++)
fin>>x[i]>>y[i];
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
{d=sqrt((x[j]-x[i])*(x[j]-x[i])+(y[j]-y[i])*(y[j]-y[i]));
punct[++k].a=d;punct[k].b=i;punct[k].c=j;}
for(i=1;i<=k;i++)
for(j=i+1;j<=k;j++)
if(punct[i].a==punct[j].a)
{
matr[punct[i].b][punct[i].c]=matr[punct[i].c][punct[i].b]=1;
matr[punct[j].b][punct[j].c]=matr[punct[j].c][punct[j].b]=1;
}
for(i=1;i<=n/2;i++)
{nr=0;
for(j=1;j<=n;j++)
if(matr[i][j]==1)
nr++;
if(nr==2)
patrate++;}
fout<<patrate;
return 0;
}