Print 2-D co-ordinate points in ascending order followed by their frequencies

19 Aug, 2021
Given two arrays x[] and y[] where x[i] represents the x coordinate and y[i] represent the corresponding y coordinate of a 2-D point, the task is to print the coordinate points in ascending order followed by their frequencies.Examples: 
Input: x[] = {1, 2, 1, 1, 1}, y[] = {1, 1, 3, 1, 3} Output: 1 1 2 1 3 2 2 1 1Input: x[] = {-1, 2, 1, -1, 2}, y[] = {-1, 1, -3, -1, 3} Output: -1 -1 2 1 -3 1 2 1 1 2 3 1 
Approach: The idea is to use a map having key as pair (x[i], y[i]), and mapped value as integer frequency of the same point. Key-value will store the pair of coordinates and the mapped value will store their respective frequencies.Below is the implementation of the above approach:  
C++
Python3
C#
// C++ implementation of the approach#include <bits/stdc++.h>using namespace std; // Function to print the coordinates along with// their frequency in ascending ordervoid Print(int x[], int y[], int n){     // map to store the pairs    // and their frequencies    map<pair<int, int>, int> m;     // Store the coordinates along    // with their frequencies    for (int i = 0; i < n; i++)        m[make_pair(x[i], y[i])]++;     map<pair<int, int>, int>::iterator i;     for (i = m.begin(); i != m.end(); i++) {        cout << (i->first).first << " "             << (i->first).second << " "             << i->second << "\n";    }} // Driver codeint main(){    int x[] = { 1, 2, 1, 1, 1 };    int y[] = { 1, 1, 3, 1, 3 };    int n = sizeof(x) / sizeof(int);     Print(x, y, n);     return 0;}
# Python3 implementation of the approach # Function to print the coordinates along with# their frequency in ascending orderdef Print(x, y, n):     # map to store the pairs    # and their frequencies    m = dict()     # Store the coordinates along    # with their frequencies    for i in range(n):        m[(x[i], y[i])] = m.get((x[i],                                 y[i]), 0) + 1     e = sorted(m)         for i in e:        print(i[0], i[1], m[i]) # Driver codex = [1, 2, 1, 1, 1]y = [1, 1, 3, 1, 3]n = len(x) Print(x, y, n) # This code is contributed# by mohit kumar
// C# implementation of// the above approachusing System;using System.Collections.Generic;class GFG{ public class store :       IComparer<KeyValuePair<int,                              int>>{  public int Compare(KeyValuePair<int,                                  int> x,                     KeyValuePair<int,                                  int> y)  {    if(x.Key != y.Key)    {      return x.Key.CompareTo(y.Key);       }    else    {      return x.Value.CompareTo(y.Value);       }   }} // Function to print the// coordinates along with// their frequency in// ascending orderstatic void Print(int []x,                  int []y, int n){  // Map to store the pairs  // and their frequencies  SortedDictionary<KeyValuePair<int,                                int>, int> m =        new SortedDictionary<KeyValuePair<int,                                          int>,                                          int>(new store());   // Store the coordinates along  // with their frequencies  for (int i = 0; i < n; i++)  {    KeyValuePair<int,                 int> tmp =       new KeyValuePair<int,                        int>(x[i], y[i]);         if(m.ContainsKey(tmp))    {      m[tmp]++;    }    else{      m[tmp] = 1;    }  }   foreach(KeyValuePair<KeyValuePair<int,                                    int>, int> i in m)  {    Console.Write(i.Key.Key + " " +                  i.Key.Value + " " +                  i.Value + "\n");  }} // Driver codepublic static void Main(string[] args){  int []x = {1, 2, 1, 1, 1};  int []y = {1, 1, 3, 1, 3};  int n = x.Length;  Print(x, y, n);}} // This code is contributed by rutvik_56
1 1 2
1 3 2
2 1 1
 
Time Complexity: O(N * logN)Auxiliary Space: O(N) 
mohit kumar 29
nidhi_biet
rutvik_56
pankajsharmagfg
C++ Programs
Data Structures
Hash
Sorting
Data Structures
Hash
Sorting
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Passing a function as a parameter in C++
Const keyword in C++
Program to implement Singly Linked List in C++ using class
cout in C++
Different ways to print elements of vector
DSA Sheet by Love Babbar
SDE SHEET - A Complete Guide for SDE Preparation
Top 50 Array Coding Problems for Interviews
What is Hashing | A Complete Tutorial
Doubly Linked List | Set 1 (Introduction and Insertion)