Number of lines from given N points not parallel to X or Y axis | Function to find the number of lines which are formed from given N points and not parallel to X or Y axis ; This will store the number of points has same x or y coordinates using the map as the value of coordinate can be very large ; Counting frequency of each x and y coordinates ; Total number of pairs can be formed ; We can not choose pairs from these as they have same x coordinatethus they will result line segment parallel to y axis ; we can not choose pairs from these as they have same y coordinate thus they will result line segment parallel to x - axis ; Return the required answer ; Driver Code ; Function call
function NotParallel ( p , n ) { var x_axis = new Map ( ) , y_axis = new Map ( ) ; for ( var i = 0 ; i < n ; i ++ ) { if ( x_axis . has ( p [ i ] [ 0 ] ) ) x_axis . set ( p [ i ] [ 0 ] , x_axis . get ( p [ i ] [ 0 ] ) + 1 ) else x_axis . set ( p [ i ] [ 0 ] , 1 ) if ( y_axis . has ( p [ i ] [ 1 ] ) ) y_axis . set ( p [ i ] [ 1 ] , y_axis . get ( p [ i ] [ 1 ] ) + 1 ) else y_axis . set ( p [ i ] [ 1 ] , 1 ) } var total = ( n * ( n - 1 ) ) / 2 ; x_axis . forEach ( ( value , key ) => { var c = value ; total -= ( c * ( c - 1 ) ) / 2 ; } ) ; y_axis . forEach ( ( value , key ) => { var c = value ; total -= ( c * ( c - 1 ) ) / 2 ; } ) ; return total ; } var p = [ [ 1 , 2 ] , [ 1 , 5 ] , [ 1 , 15 ] , [ 2 , 10 ] ] ; var n = p . length ; document . write ( NotParallel ( p , n ) ) ;