Skip to main content
Back to problems
#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)
LeetCode
solution.rs
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
  }
}