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++

`// C++ implementation of the approach` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to print the coordinates along with` `// their frequency in ascending order` `void` `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 code` `int` `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

`# Python3 implementation of the approach` `# Function to print the coordinates along with` `# their frequency in ascending order` `def` `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 code` `x ` `=` `[` `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#

`// C# implementation of ` `// the above approach` `using` `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 order` `static` `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 code` `public` `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` |

**Output:**

1 1 2 1 3 2 2 1 1

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.