Pagini recente » Cod sursa (job #2296291) | Cod sursa (job #772864) | Cod sursa (job #516529) | Cod sursa (job #224595) | Cod sursa (job #100638)
Cod sursa(job #100638)
#define EPS 0.000001
#include <math.h>
#include <fstream.h>
//using namespace std;
int n;
double x[1001],y[1001];
void citire(){
ifstream fin("patrate3.in");
fin>>n;
for (int i=0;i<n;i++)
fin>>x[i]>>y[i];
fin.close();
}
void bule(){
int ok=1,p=n;
while(ok){
ok=0;
p--;
for (int i=0;i<p;i++)
if (x[i]>x[i+1]){
double aux=x[i];
x[i]=x[i+1];
x[i+1]=aux;
aux=y[i];
y[i]=y[i+1];
y[i+1]=aux;
ok=1;
}
}
}
int da(double a,double b,int m){
if (fabs(x[m]-a)<=EPS && fabs(y[m]-b)<=EPS)
return 1;
return 0;
}
double binar(double a,double b,int p,int u){
if (p>u)
return 0;
int m=(p+u)/2;
if (da(a,b,m))
return 1;
if (x[m]<a)
return binar(a,b,m+1,u);
return binar(a,b,p,m-1);
}
long numarare(){
long nr=0;
for (int i=0;i<n-1;i++)
for (int j=i+1;j<n;j++){
if (binar(x[j]+(y[i]-y[j]),y[j]+(x[j]-x[i]),i,n)==1)
if (binar(x[i]+(y[i]-y[j]),y[i]+(x[j]-x[i]),i,n)==1){
nr++;
break;}
}
return nr;
}
int main(){
citire();
bule();
ofstream fout("patrate3.out");
fout<<numarare()<<"\n";
fout.close();
return 0;
}