Count of Right | C # program for the above approach ; Function to find the number of right angled triangle that are formed from given N points whose perpendicular or base is parallel to X or Y axis ; To store the number of points has same x or y coordinates ; Store the total count of triangle ; Iterate to check for total number of possible triangle ; Add the count of triangles formed ; Total possible triangle ; Driver Code ; Given N points ; Function Call
using System ; using System . Collections . Generic ; class GFG { static int RightAngled ( int [ , ] a , int n ) { 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 ) ; } } int count = 0 ; for ( int i = 0 ; i < n ; i ++ ) { if ( xpoints [ a [ i , 0 ] ] >= 1 && ypoints [ a [ i , 1 ] ] >= 1 ) { count += ( xpoints [ a [ i , 0 ] ] - 1 ) * ( ypoints [ a [ i , 1 ] ] - 1 ) ; } } return count ; } public static void Main ( String [ ] args ) { int N = 5 ; int [ , ] arr = { { 1 , 2 } , { 2 , 1 } , { 2 , 2 } , { 2 , 3 } , { 3 , 2 } } ; Console . Write ( RightAngled ( arr , N ) ) ; } }