#2491
Medium Algorithms Divide players into teams of equal skill
Array Hash Table Two Pointers Sorting
68.9% acceptance
Feb 25, 2026
1080
35
You are given a positive integer array skill of even length n.
Divide players into n/2 teams of size 2 such that total skill of each team is equal.
Return sum of chemistry (product of skills in each team), or -1 if impossible.
Solution
Rust
Time O(n log n)
Space O(1)
impl Solution {
pub fn divide_players(mut skill: Vec<i32>) -> i64 {
skill.sort();
let n = skill.len();
let target = skill[0] + skill[n - 1];
let mut chem = 0i64;
for i in 0..n / 2 {
if skill[i] + skill[n - 1 - i] != target { return -1; }
chem += skill[i] as i64 * skill[n - 1 - i] as i64;
}
chem
}
}