Cod sursa(job #2616588)

Utilizator Gliumarin negai Gliu Data 18 mai 2020 23:16:29
Problema Triang Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#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;
}