To store the number of points has same x or y coordinates
Dictionary < int , int > xpoints = new Dictionary < int , int > ( ) ; Dictionary < int , int > ypoints = new Dictionary < int , int > ( ) ; for ( int i = 0 ; i < n ; i ++ ) { if ( xpoints . ContainsKey ( a [ i , 0 ] ) ) { xpoints [ a [ i , 0 ] ] = xpoints [ a [ i , 0 ] ] + 1 ; } else { xpoints . Add ( a [ i , 0 ] , 1 ) ; } if ( ypoints . ContainsKey ( a [ i , 1 ] ) ) { ypoints [ a [ i , 1 ] ] = ypoints [ a [ i , 1 ] ] + 1 ; } else { ypoints . Add ( a [ i , 1 ] , 1 ) ; } }