5338 {
5339 multiset<int> positive;
5340 multiset<int, greater<>> negative;
5341 for(auto num: arr) {
5342 if(num >= 0) {
5343 positive.insert(num);
5344 } else {
5345 negative.insert(num);
5346 }
5347 }
5348 while(!positive.empty()) {
5349 const int num = *positive.begin();
5350 positive.erase(positive.begin());
5351 auto it = positive.find(num * 2);
5352 if(it == positive.end()) {
5353 return false;
5354 }
5355 positive.erase(it);
5356 }
5357 while(!negative.empty()) {
5358 const int num = *negative.begin();
5359 negative.erase(negative.begin());
5360 auto it = negative.find(num * 2);
5361 if(it == negative.end()) {
5362 return false;
5363 }
5364 negative.erase(it);
5365
5366 negative.erase(it);
5367 }
5368 return true;
5369 }