#include <iostream> #include <fstream> #include <stdlib.h> #include <math.h> using namespace std; int n,nr; struct coord{int x,y;}points[100000]; int comp(const void *a,const void *b){ int ax=((struct coord *)a)->x; int bx=((struct coord *)b)->x; int ay=((struct coord *)a)->y; int by=((struct coord *)b)->y; //cout<<ax<<bx; if(ax>bx) return 1; else if(ax<bx) return -1;else if(ay>by) return 1; else if(ay<by) return -1; } int main() { //cout << "Hello world!" << endl; ifstream f("fis.in"); cin>>n; for(int i=0;i<n;i++) cin>>points[i].x>>points[i].y; //comp(&points[5],&points[4]); qsort(points,n,sizeof(coord),comp); for(int i=0;i<n;i++){ for(int j=i+1; j<n; j++) if(points[i].y==points[j].y){ int lc=0; int k=i+1; lc=abs(points[j].x-points[i].x); // cout<<lc; while(points[k].x<=points[j].x && k<n){ if(points[k].x==points[j].x || points[k].x==points[i].x) if(points[j].y-lc==points[k].y || points[i].y+lc==points[k].y ||points[j].y+lc==points[k].y) { nr++; } k++; } k=i-1; while(k>0 && points[k].x==points[i].x){ if(points[i].y-lc==points[k].y) { nr++; } k--; } } } cout<<nr<<endl; return 0; }