Find an array of size N having exactly K subarrays with sum S

Given three integers N, K and S, the task is to choose an array of size N such that there exists exactly K sub-arrays with sum S.

Note: There can be many solution arrays to this problem.

Examples:



Input: N = 4, K = 2, S = 3
Output: 1 2 3 4
Explanation:
One of the possible array is [ 1, 2, 3, 4 ]
There exist exactly two subarrays with sum 3
Subarrays with Sum(3) = [ [ 1, 2 ], [ 3 ] ]

Input: N = 5, K = 3, S = 50
Output: 25 25 25 10 40
Explanation:
One of the possible array is [ 25, 25, 25, 10, 40 ]
There exist exactly three subarrays with sum 50
Subarrays with Sum(50) = [ [ 25, 25 ], [ 25, 25 ], [ 10, 40 ] ]

Approach:
One of the Solution Array for this problem contains S element K times and S+1 element (N-K) times, to form K Sub-arrays of exactly one element with S as sum. If we combine any two or more elements of the array then it will give sum greater than S.

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ progarm to find array 
// with K subarrays with sum S
  
#include<bits/stdc++.h> 
using namespace std; 
    
// Function to find array 
// with K subarrays with sum S
void SubarraysWithSumS(int n, int k, int s)
{
    for(int i=0;i<k;i++)
        cout << s << " ";
    for(int i=k;i<n;i++)
        cout << s+1 << " ";
    
// Driver Code
int main() 
    int n = 4, k = 2, s = 3;
      
    // Function call
    SubarraysWithSumS(n, k, s);
    return 0; 

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java progarm to find array 
// with K subarrays with sum S
class GFG
      
// Function to find array 
// with K subarrays with sum S
static void SubarraysWithSumS(int n, int k, int s)
{
    for(int i = 0; i < k; i++)
        System.out.print(s + " ");
    for(int i = k; i < n; i++)
        System.out.print(s + 1 + " ");
      
// Driver Code
public static void main(String[] args) 
    int n = 4, k = 2, s = 3;
      
    // Function call
    SubarraysWithSumS(n, k, s);
  
// This code is contributed by 29AjayKumar

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 progarm to find array
# with K subarrays with sum S
  
# Function to find array
# with K subarrays with sum S
def SubarraysWithSumS(n, k, s):
    for i in range(k):
        print(s, end=" ")
    for i in range(k, n):
        print(s + 1, end = " ")
  
# Driver Code
n = 4
k = 2
s = 3
  
# Function call
SubarraysWithSumS(n, k, s)
  
# This code is contributed by mohit kumar 29

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# progarm to find array 
// with K subarrays with sum S
using System;
  
class GFG
      
// Function to find array 
// with K subarrays with sum S
static void SubarraysWithSumS(int n, int k, int s)
{
    for(int i = 0; i < k; i++)
        Console.Write(s + " ");
    for(int i = k; i < n; i++)
        Console.Write(s + 1 + " ");
      
// Driver Code
public static void Main(String[] args) 
    int n = 4, k = 2, s = 3;
      
    // Function call
    SubarraysWithSumS(n, k, s);
  
// This code is contributed by PrinciRaj1992

chevron_right


Output:

3 3 4 4

GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

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.