Pagini recente » Cod sursa (job #984628) | Cod sursa (job #2293451) | Cod sursa (job #1553124) | Cod sursa (job #2922042) | Cod sursa (job #1933456)
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
struct point{
long long x;
long long y;
};
bool comparator(point p1, point p2){
return (p1.x != p2.x) ? (p1.x < p2.x) : (p1.y < p2.y ));
}
int N, i, j, squares;
point input[100001], p1, p2;
double xi, yi, dx, dy;
int main(){
freopen("patrate3.in", "r", stdin);
freopen("patrate3.out", "w", stdout);
scanf("%d", &N);
for(i = 1; i <= N; i++){
scanf("%lf %lf", &xi, &yi);
input[i].x = round(xi * 10000);
input[i].y = round(yi * 10000);
}
sort(input + 1, input + N + 1, comparator);
for(i = 1; i <= N - 2; i++){
for(j = i + 1; j <= N; j++){
dx = abs(input[i].x - input[j].x);
dy = abs(input[i].y - input[j].y);
p1.x = input[i].x + dy;
p1.y = input[i].y + dx;
p2.x = input[j].x + dy;
p2.y = input[j].y + dx;
if(binary_search(input + 1, input + N + 1, p1, comparator) &&
binary_search(input + 1, input + N + 1, p2, comparator)){
squares++;
}
}
}
printf("%d", squares);
}