# Subarray Division | HackerRank Solution

Hello coders, today we are going to solve Subarray Division HackerRank Solution which is a Part of HackerRank Algorithms Series.

Two children, Lily and Ron, want to share a chocolate bar. Each of the squares has an integer on it.

Lily decides to share a contiguous segment of the bar selected such that:

• The length of the segment matches Ron’s birth month, and,
• The sum of the integers on the squares is equal to his birth day.

Determine how many ways she can divide the chocolate.

Example

s = [2, 2, 1, 3, 2]
d = 4
m = 2
Lily wants to find segments summing to Ron’s birth day, d = 4 with a length equalling his birth month, m = 2. In this case, there are two segments meeting her criteria: [2, 2] and [1, 3].

Function Description

Complete the birthday function in the editor below.

birthday has the following parameter(s):

• int s[n]: the numbers on each of the squares of chocolate
• int d: Ron’s birth day
• int m: Ron’s birth month

Returns

• int: the number of ways the bar can be divided

## Input Format

The first line contains an integer n, the number of squares in the chocolate bar.
The second line contains n space-separated integers s[i], the numbers on the chocolate squares where 0 <= i < n.
The third line contains two space-separated integers, d and m, Ron’s birth day and his birth month.

## Constraints

• 1 <= n <= 100
• 1 <= s[i] <= 5, where (0 <= i < n)
• 1 <= d <= 31
• 1 <= m <= 12

Sample Input 0

``````5
1 2 1 3 2
3 2``````

Sample Output 0

``2``

Explanation 0

Lily wants to give Ron m = 2 squares summing to d = 3. The following two segments meet the criteria:

Sample Input 1

``````6
1 1 1 1 1 1
3 2``````

Sample Output 1

``0``

Explanation 1

Lily only wants to give Ron m = 2 consecutive squares of chocolate whose integers sum to d = 3. There are no possible pieces satisfying these constraints:

Thus, we print 0 as our answer.

Sample Input 2

``````1
4
4 1``````

Sample Output 2

``1``

Explanation 2

Lily only wants to give Ron m = 1 square of chocolate with an integer value of d = 4. Because the only square of chocolate in the bar satisfies this constraint, we print 1 as our answer.

## Solution – Subarray Division

### C++

```#include<bits/stdc++.h>
#define mp make_pair
#define pb push_back
#define ll long long
using namespace std;
int n,d,m,a,s,ans;
int main(){

cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
s[i]=s[i-1]+a[i];
}
cin>>d>>m;

for(int i=m;i<=n;i++)
if(s[i]-s[i-m]==d)
ans++;
cout<<ans<<endl;

return 0;
}
```

### Python

```n = int(input())
s = list(map(int, input().split()))
d, m = map(int, input().split())

ans = 0
for i in range(n-m+1):
if (sum(s[i:i+m]) == d):
ans += 1

print(ans)```

### Java

```import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] squares = new int[n];
for(int squares_i=0; squares_i < n; squares_i++){
squares[squares_i] = in.nextInt();
}
int d = in.nextInt();
int m = in.nextInt();
int result = 0;

for(int i = 0; i < n-m+1; i++){
int tmpSum = 0;
for(int j = i; j < i+m; j++){
tmpSum+= squares[j];
}
if(tmpSum == d){
result++;
}
}
System.out.println(result);

}
}
```

Disclaimer: The above Problem (Subarray Division) is generated by Hacker Rank but the Solution is Provided by CodingBroz. This tutorial is only for Educational and Learning Purpose.