Related Articles
Find n positive integers that satisfy the given equations
• Difficulty Level : Easy
• Last Updated : 19 May, 2021

Given three integers N, X, and Y. The task is to find N positive integers that satisfy the given equations.

1. a12 + a22 + …. + an2 ≥ X
2. a1 + a2 + …. + an ≤ Y

If no such sequence of integers is possible then print -1.
Examples:

Input: N = 3, X = 254, Y = 18
Output: 1 1 16
12 + 12 + 162 = 1 + 1 + 256 = 258 which is ≥ X
1 + 1 + 16 = 18 which is ≤ Y
Input: N = 2, X = 3, Y = 2
Output: -1
No such sequence exists.

Approach: It is easy to see that in order to maximize the sum of squares, one should make all numbers except the first one equal to 1 and maximize the first number. Keeping this in mind we only need to check whether the given value of y is large enough to satisfy a restriction that all n numbers are positive. If y is not too small, then all we need is to ensure that X ≤ 1 + 1 + … + (y – (n – 1))2.
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;` `// Function to find n positive integers``// that satisfy the given conditions``void` `findIntegers(``int` `n, ``int` `x, ``int` `y)``{` `    ``// To store n positive integers``    ``vector<``int``> ans;` `    ``// Place N - 1 one's``    ``for` `(``int` `i = 0; i < n - 1; i++)``        ``ans.push_back(1);` `    ``// If can not place (y - (n - 1))``    ``// as the Nth integer``    ``if` `(y - (n - 1) <= 0) {``        ``cout << ``"-1"``;``        ``return``;``    ``}` `    ``// Place Nth integer``    ``ans.push_back(y - (n - 1));` `    ``// To store the sum of``    ``// squares of N integers``    ``int` `store = 0;``    ``for` `(``int` `i = 0; i < n; i++)``        ``store += ans[i] * ans[i];` `    ``// If it is less than x``    ``if` `(store < x) {``        ``cout << ``"-1"``;``        ``return``;``    ``}` `    ``// Print the required integers``    ``for` `(``int` `i = 0; i < n; i++)``        ``cout << ans[i] << ``" "``;``}` `// Driver code``int` `main()``{``    ``int` `n = 3, x = 254, y = 18;``    ``findIntegers(n, x, y);` `    ``return` `0;``}`

## Java

 `// Java implementation of the approach``import` `java.util.*;` `class` `GFG``{``    ` `// Function to find n positive integers``// that satisfy the given conditions``static` `void` `findIntegers(``int` `n, ``int` `x, ``int` `y)``{` `    ``// To store n positive integers``    ``ArrayList ans = ``new` `ArrayList();` `    ``// Place N - 1 one's``    ``for` `(``int` `i = ``0``; i < n - ``1``; i++)``        ``ans.add(``1``);` `    ``// If can not place (y - (n - 1))``    ``// as the Nth integer``    ``if` `(y - (n - ``1``) <= ``0``)``    ``{``        ``System.out.print(``"-1"``);``        ``return``;``    ``}` `    ``// Place Nth integer``    ``ans.add(y - (n - ``1``));` `    ``// To store the sum of``    ``// squares of N integers``    ``int` `store = ``0``;``    ``for` `(``int` `i = ``0``; i < n; i++)``        ``store += ans.get(i) * ans.get(i);` `    ``// If it is less than x``    ``if` `(store < x)``    ``{``        ``System.out.print(``"-1"``);``        ``return``;``    ``}` `    ``// Print the required integers``    ``for` `(``int` `i = ``0``; i < n; i++)``        ``System.out.print(ans.get(i)+``" "``);``}` `// Driver code``public` `static` `void` `main (String[] args)``{``    ``int` `n = ``3``, x = ``254``, y = ``18``;``    ``findIntegers(n, x, y);``}``}` `// This code is contributed by mits`

## Python3

 `# Python3 implementation of the approach` `# Function to find n positive integers``# that satisfy the given conditions``def` `findIntegers(n, x, y):` `    ``# To store n positive integers``    ``ans ``=` `[]` `    ``# Place N - 1 one's``    ``for` `i ``in` `range``(n ``-` `1``):``        ``ans.append(``1``)` `    ``# If can not place (y - (n - 1))``    ``# as the Nth integer``    ``if` `(y ``-` `(n ``-` `1``) <``=` `0``):``        ``print``(``"-1"``, end ``=` `"")``        ``return` `    ``# Place Nth integer``    ``ans.append(y ``-` `(n ``-` `1``))` `    ``# To store the sum of``    ``# squares of N integers``    ``store ``=` `0` `    ``for` `i ``in` `range``(n):``        ``store ``+``=` `ans[i] ``*` `ans[i]` `    ``# If it is less than x``    ``if` `(store < x):``        ``print``(``"-1"``, end ``=` `"")``        ``return``;` `    ``# Print the required integers``    ``for` `i ``in` `range``(n):``        ``print``(ans[i], end ``=` `" "``)` `# Driver code``n, x, y ``=` `3``, ``254``, ``18``findIntegers(n, x, y)` `# This code is contributed by mohit kumar`

## C#

 `// C# implementation of the approach``using` `System;``using` `System.Collections;` `class` `GFG``{``    ` `// Function to find n positive integers``// that satisfy the given conditions``static` `void` `findIntegers(``int` `n, ``int` `x, ``int` `y)``{` `    ``// To store n positive integers``    ``ArrayList ans = ``new` `ArrayList();` `    ``// Place N - 1 one's``    ``for` `(``int` `i = 0; i < n - 1; i++)``        ``ans.Add(1);` `    ``// If can not place (y - (n - 1))``    ``// as the Nth integer``    ``if` `(y - (n - 1) <= 0)``    ``{``        ``Console.Write(``"-1"``);``        ``return``;``    ``}` `    ``// Place Nth integer``    ``ans.Add(y - (n - 1));` `    ``// To store the sum of``    ``// squares of N integers``    ``int` `store = 0;``    ``for` `(``int` `i = 0; i < n; i++)``        ``store += (``int``)ans[i] *(``int``)ans[i];` `    ``// If it is less than x``    ``if` `(store < x)``    ``{``        ``Console.Write(``"-1"``);``        ``return``;``    ``}` `    ``// Print the required integers``    ``for` `(``int` `i = 0; i < n; i++)``        ``Console.Write((``int``)ans[i]+``" "``);``}` `// Driver code``static` `void` `Main()``{``    ``int` `n = 3, x = 254, y = 18;``    ``findIntegers(n, x, y);``}``}` `// This code is contributed by mits`

## PHP

 ``

## Javascript

 ``
Output:
`1 1 16`

Attention reader! Don’t stop learning now. Get hold of all the important Comcompetitivepetitve Programming concepts with the Competitive Programming Live  course.

My Personal Notes arrow_drop_up