How to count the odd and even sum of pairs in an array with C++

1 Answer

0 votes
#include <vector>
#include <iostream>

void count_odd_and_even_sum_of_pairs(std::vector<int> &arr, std::vector<int> &evenodd) {
	int total_even = 0, total_odd = 0;
	int size = arr.size();

	for (int i = 0; i < size; i++) {
		if (arr[i] % 2 == 0) {
			total_even++;
		}
		else {
			total_odd++;
		}
	}

	// For all the even elements -> sum of the pair will be even
	int evenPairs = ((total_even * (total_even - 1)) / 2);

	// For all the odd elements -> sum of the pair will be even
	evenPairs += ((total_odd * (total_odd - 1)) / 2);

	// All even elements * all odd element -> sum of the pair will be odd
	int oddPairs = total_even * total_odd;

	evenodd[0] = evenPairs;
	evenodd[1] = oddPairs;
}

int main()
{
	std::vector<int> arr = {1, 2, 3, 4, 5};
	std::vector<int> evenodd(2);

	// 1 + 3, 1 + 5, 2 + 4, 3 + 5 = 4 Even
	// 1 + 2, 1 + 4, 2 + 3, 2 + 5, 3 + 4, 4 + 5 = 6 Odd

	count_odd_and_even_sum_of_pairs(arr, evenodd);

	std::cout << "Total Even Sum = " << evenodd[0] << std::endl;
	std::cout << "Total Odd Sum = " << evenodd[1] << std::endl;
}



/*
run:
    
Total Even Sum = 4
Total Odd Sum = 6
    
*/

 



answered Jun 17, 2024 by avibootz

Related questions

1 answer 107 views
1 answer 109 views
1 answer 133 views
1 answer 99 views
1 answer 116 views
...