function countOddAndEvenSumOfPairs(arr: number[]) : number[] {
let totalEven: number = 0, totalOdd: number = 0;
const size: number = arr.length;
for (let i: number = 0; i < size; i++) {
if (arr[i] % 2 === 0) {
totalEven++;
} else {
totalOdd++;
}
}
// For all the even elements -> sum of the pair will be even
let evenPairs: number = ((totalEven * (totalEven - 1)) / 2);
// For all the odd elements -> sum of the pair will be even
evenPairs += ((totalOdd * (totalOdd - 1)) / 2);
// All even elements * all odd element -> sum of the pair will be odd
let oddPairs: number = totalEven * totalOdd;
return [evenPairs, oddPairs];
}
const arr: number[] = [1, 2, 3, 4, 5];
// 1 + 3, 1 + 5, 2 + 4, 3 + 5 = 4 Even
// 1 + 2, 1 + 4, 2 + 3, 2 + 5, 3 + 4, 4 + 5 = 6 Odd
const [evenPairs, oddPairs] = countOddAndEvenSumOfPairs(arr);
console.log("Total Even Sum = " + evenPairs);
console.log("Total Odd Sum = " + oddPairs);
/*
run:
"Total Even Sum = 4"
"Total Odd Sum = 6"
*/