# 2491. Divide Players Into Teams of Equal Skill
###### tags: `Leetcode` `Medium` `HashMap` `Two Sum`
Link: https://leetcode.com/problems/divide-players-into-teams-of-equal-skill/
## 思路
two sum 找出和等于```sum/(n/2)```的所有pair
## Code
```java=
class Solution {
public long dividePlayers(int[] skill) {
int n = skill.length;
long ans = 0;
long sum = 0;
for(int i=0; i<n; i++) sum += skill[i];
if(sum%(n/2)!=0) return -1;
int teamSkill = (int)(sum/(n/2));
Map<Integer, Integer> cnt = new HashMap<>();
for(int i=0; i<n; i++){
if(cnt.containsKey(teamSkill-skill[i])){
ans += skill[i]*(teamSkill-skill[i]);
cnt.put(teamSkill-skill[i], cnt.get(teamSkill-skill[i])-1);
if(cnt.get(teamSkill-skill[i])==0) cnt.remove(teamSkill-skill[i]);
}
else cnt.put(skill[i], cnt.getOrDefault(skill[i], 0)+1);
}
return cnt.size()!=0?-1:ans;
}
}
```