# PROBLEM LINK: Balanced Plates

* Author:* Rishabh Rathi

*Rishabh Rathi*

**Tester:**# DIFFICULTY:

EASY

# PREREQUISITES:

None

# PROBLEM:

You are given an array of N integers and want to make **all array elements equal**.

There are **2** operations possible. Pick any element of array and decrease/increase it

- by 1 - Cost of each operation is Rs. X (cost given)
- by 2 - Cost of each operation is Rs. 0 (Free)

What is the **minimum** amount of money you need?

# EXPLANATION:

First operation is to change A_i to A_i + 1 or A_i - 1 for Rs. X and in second operation, we can change A_i to A_i + 2 or A_i - 2 for Rs. 0.

So from here, we can deduce that we can change any element to any value if they have **same parity** (odd to odd/even to even) for **free**. And to change parity (odd to even/even to odd), we need to spend Rs. X.

So, output minimum of count of odd and even elements in the array multiplied by X.

# SOLUTIONS:

## Setter's Solution (Python)

```
t = int(input())
for _ in range(t):
n, x = map(int, input().split())
a = list(map(int, input().split()))
even = odd = 0
for i in range(n):
if a[i]%2 == 0:
even += 1
else:
odd += 1
print(min(even, odd)*x)
```

## Tester's Solution (CPP)

```
#include <bits/stdc++.h>
using namespace std;
void solve(){
int n, x; cin>>n>>x;
vector<int> a(n);
int odd = 0, even = 0;
for(auto &i:a)
cin>>i;
for(auto i:a){
if(i%2)
odd++;
else
even++;
}
cout << min(odd, even)*x << '\n';
}
int main(){
int tt; cin >> tt;
while(tt--){
solve();
}
}
```

Feel free to share your approach. In case of any doubt or anything is unclear, please ask it in the comments section. Any suggestions are welcome