Pagini recente » Cod sursa (job #2194895) | Cod sursa (job #422932) | Cod sursa (job #941027) | Cod sursa (job #160854) | Cod sursa (job #2616588)
#include <iostream>
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
ifstream in("triang.in");
ofstream out("triang.out");
const int nmax =10002;
double x[nmax],y[nmax];
int n,ans=0;;
double lat(double x1,double y1,double x2,double y2){
double lat1,lat2,ipot;
lat1=max(x1,x2)-min(x1,x2);
lat2=max(y1,y2)-min(y1,y2);
return lat1+lat2;
}
int cautare(double l,int i,int j){
int mid,dr=n,st=0;
while(st < dr){
mid = (st+dr)/2;
if(l<lat(x[mid],y[mid],x[i],y[i]) && lat(x[mid],y[mid],x[i],y[i])==lat(x[mid],y[mid],x[j],y[j])){
dr=mid-1;
}else st=mid+1;
if(l ==lat(x[mid],y[mid],x[i],y[i]) && l== lat(x[mid],y[mid],x[j],y[j])){
ans++;
}
}
}
int main(){
in >>n;
for(int i=0;i<n;i++){
double xx,yy;
in >>xx>>yy;
x[i]=xx;
y[i]=yy;
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
double ll;
ll=lat(x[i],y[i],x[j],y[j]);
cautare(ll,i,j);
}
}
out <<ans;
}