Find ‘N’ number of solutions with the given inequality equations
Find the value of a1, a2, a3, ….an such that the following two conditions are satisfied.
Print the value of a1, a2, …, an and “No solution” otherwise.
Note: There maybe a several solutions, print any of them.
Examples:
Input: n = 5, x = 15, y = 15 Output: 11 1 1 1 1 Input: n = 4, x = 324, y = 77 Output: 74 1 1 1
Approach: Below is the step by step algorithm to solve this problem:
- Initialize the number of elements and the value of x and y.
- There is no solution of a1…a2 if y is less than n or if x is very larger than n.
- Print first solution as y – n + 1 and 1 as the solution of rest of the elements.
Below is the implementation of above approach:
C++
// C++ implementation of above approach #include <bits/stdc++.h> using namespace std; #define ll long long // Function to calculate all the solutions void findsolution(ll n, ll x, ll y) { // there is no solutions if ((y - n + 1) * (y - n + 1) + n - 1 < x || y < n) { cout << "No solution" ; return ; } // print first element as y-n+1 cout << y - n + 1; // print rest n-1 elements as 1 while (n-- > 1) cout << endl << 1; } // Driver code int main() { // initialize the number of elements // and the value of x an y ll n, x, y; n = 5, x = 15, y = 15; findsolution(n, x, y); return 0; } |
Java
// java implementation of above approach import java.io.*; class GFG { // Function to calculate all the solutions static void findsolution( long n, long x, long y) { // there is no solutions if ((y - n + 1 ) * (y - n + 1 ) + n - 1 < x || y < n) { System.out.println( "No solution" ); return ; } // print first element as y-n+1 System.out.println( y - n + 1 ); // print rest n-1 elements as 1 while (n-- > 1 ) System.out.println( "1" ); } // Driver code public static void main (String[] args) { // initialize the number of elements // and the value of x an y long n, x, y; n = 5 ; x = 15 ; y = 15 ; findsolution(n, x, y); } } // This code is contributed // by ajit |
Python3
# Python3 implementation of above approach # Function to calculate all the solutions def findsolution(n, x, y): # there is no solutions if ((y - n + 1 ) * (y - n + 1 ) + n - 1 < x or y < n): print ( "No solution" ); return ; # print first element as y-n+1 print (y - n + 1 ); # print rest n-1 elements as 1 while (n > 1 ): print ( 1 ); n - = 1 ; # Driver code # initialize the number of elements # and the value of x an y n = 5 ; x = 15 ; y = 15 ; findsolution(n, x, y); # This code is contributed by mits |
C#
// C# implementation of above approach using System; class GFG { // Function to calculate all the solutions static void findsolution( long n, long x, long y) { // there is no solutions if ((y - n + 1) * (y - n + 1) + n - 1 < x || y < n) { Console.WriteLine( "No solution" ); return ; } // print first element as y-n+1 Console.WriteLine( y - n + 1); // print rest n-1 elements as 1 while (n-- > 1) Console.WriteLine( "1" ); } // Driver code static public void Main () { // initialize the number of elements // and the value of x an y long n, x, y; n = 5; x = 15; y = 15; findsolution(n, x, y); } } // This code is contributed // by ajit |
PHP
<?php // PHP implementation of above approach // Function to calculate all the solutions function findsolution( $n , $x , $y ) { // there is no solutions if (( $y - $n + 1) * ( $y - $n + 1) + $n - 1 < $x || $y < $n ) { echo "No solution" ; return ; } // print first element as y-n+1 echo $y - $n + 1; // print rest n-1 elements as 1 while ( $n -- > 1) echo "\n" . 1; } // Driver code // initialize the number of elements // and the value of x an y $n = 5; $x = 15; $y = 15; findsolution( $n , $x , $y ); // This code is contributed // by Akanksha Rai(Abby_akku) |
Javascript
<script> // Javascript implementation of above approach // Function to calculate all the solutions function findsolution(n, x, y) { // there is no solutions if ((y - n + 1) * (y - n + 1) + n - 1 < x || y < n) { document.write( "No solution" ); return ; } // print first element as y-n+1 document.write( y - n + 1); // print rest n-1 elements as 1 while (n-- > 1) document.write( "<br>" + 1); } // Driver code // initialize the number of elements // and the value of x an y let n = 5; let x = 15; let y = 15; findsolution(n, x, y); // This code is contributed // by bobby </script> |
Output:
11 1 1 1 1
Time Complexity: O(n)
Auxiliary Space: O(1)
Contact Us