In this** Minimum Operations 4 **HackerRank solution, the task is to debug the existing code to successfully execute all provided test files.

There are boxes in front of you. For each , box contains red balls, green balls, and blue balls.

You want to separate the balls by their color. In each operation, you can pick a single ball from some box and put it into another box. The balls are separated if no box contains balls of more than one color.

Debug the given function `min_operations`

and compute the minimal number of operations required to separate the balls.

Note: In this problem you can modify at most *six* lines of code and you cannot add any new lines.

*To restore the original code, click on the icon to the right of the language selector.*

## Minimum Operations 4 HackerRank solution

I will Provide solution in Multiple programming languages for you. If you are not able to find the code in required language then please share in comments so that our team can help you.

### Problem Solution in C++

```
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <vector>
#include <cmath>
#include <iostream>
#include <map>
using namespace std;
int dp[110][1<<3];
int min_operations(vector <int> red, vector <int> green, vector <int> blue) {
int n = (int)red.size(), i, j;
for (i = 0; i <= n; i++) {
for (j = 0; j < 8; j++) {
dp[i][j] = 1<<30;
}
}
dp[0][0] = 0;
for (i = 0; i < n; i++){
for (j = 0; j < 8; j++){
dp[i + 1][j | 1] = min(dp[i + 1][j | 1], dp[i][j] + green[i] + blue[i]);
dp[i + 1][j | 2] = min(dp[i + 1][j | 2], dp[i][j] + red[i] + blue[i]);
dp[i + 1][j | 4] = min(dp[i + 1][j | 4], dp[i][j] + red[i] + green[i]);
}
}
j = 0;
for (i = 0; i < n; i++){
if (green[i]) j |= 1;
if (red[i]) j |= 2;
if (blue[i]) j |= 4;
}
if (dp[n][j] >= (1<<30))
dp[n][j] = -1;
return dp[n][j];
}
int main() {
int n, r, g, b;
cin >> n;
vector<int> red, blue, green;
for(int i = 0; i < n; i++){
cin >> r >> g >> b;
red.push_back(r);
green.push_back(g);
blue.push_back(b);
}
cout << min_operations(red, green, blue) << "\n";
return 0;
}
```

## Leave a Reply