Given an even number N. The task is to consider numbers from 1 to N^{2}, split them into N groups of the equal sum.

**Examples**:

Input:N = 2Output:{1, 4}, {2, 3} Two groups of equal sum are 1, 4 and 2,3Input:N = 4Output:{ 1, 16} { 2, 15} { 3, 14} { 4, 13} { 5, 12} { 6, 11} { 7, 10} { 8, 9}

**Approach:** Formula for sum of first N^{2} numbers: **Sum = (N ^{2} * (N^{2} + 1))/ 2**.

Therefore, the sum of each group would be = **(N ^{2} + 1)* N^{2} / 2**

Let us consider pairs of the following type (1, N^{2}), (2, N^{2}-1) and so on.

Since N^{2} is an even number, each group can be made using exactly N/2 such pairs.

Below is the implementation of the above approach:

## C++

`// C++ implementation of the above approach ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Function to print N groups of equal sum ` `void` `printGroups(` `int` `n) ` `{ ` ` ` `int` `x = 1; ` ` ` `int` `y = n * n; ` ` ` ` ` `// No. of Groups ` ` ` `for` `(` `int` `i = 1; i <= n; i++) { ` ` ` ` ` `// n/2 pairs ` ` ` `for` `(` `int` `j = 1; j <= n / 2; j++) { ` ` ` `cout << ` `"{ "` `<< x << ` `", "` `<< y << ` `"} "` `; ` ` ` `x++; ` ` ` `y--; ` ` ` `} ` ` ` ` ` `cout << endl; ` ` ` `} ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `int` `n = 4; ` ` ` `printGroups(n); ` ` ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java implementation of the above approach ` ` ` `import` `java.io.*; ` ` ` `class` `GFG { ` ` ` ` ` ` ` `// Function to print N groups of equal sum ` `static` `void` `printGroups(` `int` `n) ` `{ ` ` ` `int` `x = ` `1` `; ` ` ` `int` `y = n * n; ` ` ` ` ` `// No. of Groups ` ` ` `for` `(` `int` `i = ` `1` `; i <= n; i++) { ` ` ` ` ` `// n/2 pairs ` ` ` `for` `(` `int` `j = ` `1` `; j <= n / ` `2` `; j++) { ` ` ` `System.out.print(` `"{ "` `+ x + ` `", "` `+ y + ` `"} "` `); ` ` ` `x++; ` ` ` `y--; ` ` ` `} ` ` ` ` ` `System.out.println(); ` ` ` `} ` `} ` ` ` `// Driver code ` ` ` ` ` `public` `static` `void` `main (String[] args) { ` ` ` `int` `n = ` `4` `; ` ` ` `printGroups(n); ` ` ` `} ` `} ` `// This code is contributed by shs ` |

*chevron_right*

*filter_none*

## Python3

`# Python implementation of the above approach ` ` ` `# Function to print N groups of equal sum ` `def` `printGroups(n) : ` ` ` ` ` `x ` `=` `1` ` ` `y ` `=` `n ` `*` `n ` ` ` ` ` `# No. of Groups ` ` ` `for` `i ` `in` `range` `(` `1` `, n ` `+` `1` `) : ` ` ` ` ` `# n/2 pairs ` ` ` `for` `j ` `in` `range` `(` `1` `, n ` `/` `/` `2` `+` `1` `) : ` ` ` ` ` `print` `(` `"{"` `,x,` `","` `,y,` `"}"` `,end ` `=` `" "` `) ` ` ` ` ` `x ` `+` `=` `1` ` ` `y ` `-` `=` `1` ` ` ` ` `print` `() ` ` ` ` ` `# Driver code ` `if` `__name__ ` `=` `=` `"__main__"` `: ` ` ` ` ` `n ` `=` `4` ` ` ` ` `# Function call ` ` ` `printGroups(n) ` ` ` `# This code is contributed by Ryuga ` |

*chevron_right*

*filter_none*

## C#

`// Java implementation of the ` `// above approach ` `using` `System; ` ` ` `class` `GFG ` `{ ` ` ` `// Function to print N groups ` `// of equal sum ` `static` `void` `printGroups(` `int` `n) ` `{ ` ` ` `int` `x = 1; ` ` ` `int` `y = n * n; ` ` ` ` ` `// No. of Groups ` ` ` `for` `(` `int` `i = 1; i <= n; i++) ` ` ` `{ ` ` ` ` ` `// n/2 pairs ` ` ` `for` `(` `int` `j = 1; j <= n / 2; j++) ` ` ` `{ ` ` ` `Console.Write(` `"{ "` `+ x + ` `", "` `+ y + ` `"} "` `); ` ` ` `x++; ` ` ` `y--; ` ` ` `} ` ` ` ` ` `Console.WriteLine(); ` ` ` `} ` `} ` ` ` `// Driver code ` `public` `static` `void` `Main () ` `{ ` ` ` `int` `n = 4; ` ` ` `printGroups(n); ` `} ` `} ` ` ` `// This code is contributed by shs ` |

*chevron_right*

*filter_none*

## PHP

`<?php ` `// PHP implementation of the ` `// above approach ` ` ` `// Function to print N groups ` `// of equal sum ` `function` `printGroups(` `$n` `) ` `{ ` ` ` `$x` `= 1; ` ` ` `$y` `= ` `$n` `* ` `$n` `; ` ` ` ` ` `// No. of Groups ` ` ` `for` `(` `$i` `= 1; ` `$i` `<= ` `$n` `; ` `$i` `++) ` ` ` `{ ` ` ` ` ` `// n/2 pairs ` ` ` `for` `(` `$j` `= 1; ` `$j` `<= ` `$n` `/ 2; ` `$j` `++) ` ` ` `{ ` ` ` `echo` `"{ "` `, ` `$x` `, ` `", "` `, ` `$y` `, ` `" } "` `; ` ` ` `$x` `++; ` ` ` `$y` `--; ` ` ` `} ` ` ` ` ` `echo` `"\n"` `; ` ` ` `} ` `} ` ` ` `// Driver code ` `$n` `= 4; ` `printGroups(` `$n` `); ` ` ` `// This code is contributed by shs ` `?> ` |

*chevron_right*

*filter_none*

**Output:**

{ 1, 16} { 2, 15} { 3, 14} { 4, 13} { 5, 12} { 6, 11} { 7, 10} { 8, 9}

## Recommended Posts:

- Divide Matrix into K groups of adjacent cells having minimum difference between maximum and minimum sized groups
- Split an array into groups of 3 such that X3 is divisible by X2 and X2 is divisible by X1
- Number of ways of distributing N identical objects in R distinct groups with no groups empty
- Split a given string into substrings of length K with equal sum of ASCII values
- Split array into two subsequences having minimum count of pairs with sum equal to X
- Count ways to split array into two equal sum subarrays by replacing each array element to 0 once
- Divide 1 to n into two groups with minimum sum difference
- Split N into two integers whose addition to A and B makes them equal
- Count ways to split a Binary String into three substrings having equal count of zeros
- Count ways to split array into two subarrays with equal GCD
- Ways of dividing a group into two halves such that two elements are in different groups
- Divide N segments into two non-empty groups such that given condition is satisfied
- Minimize the cost of partitioning an array into K groups
- Partition the array into two odd length groups with minimized absolute difference between their median
- Split n into maximum composite numbers
- Split N natural numbers into two sets having GCD of their sums greater than 1
- Split first N natural numbers into two sets with minimum absolute difference of their sums
- Split N powers of 2 into two subsets such that their difference of sum is minimum
- Split a binary string into K subsets minimizing sum of products of occurrences of 0 and 1
- Check if it is possible to split given Array into K odd-sum subsets

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.