<?php
$input = array (3, 6, -3, 5, -10, 3, 10, 1, 7, -1, -9, -8, 7, 7, -7, -2, -7); function pairs($array=[]){
$pairs = [];
// counting the positive and negative of each number in the set
foreach($array as $v){
$pairs[$av] = [
'pos' => 0,
'neg' => 0
];
($v > 0) ? $pairs[$av]['pos']++ : $pairs[$av]['neg']++;
}
$pair_count = 0;
// getting the number of pairs for each number, based on those counts
foreach($pairs as $pair){
$pair_count += min($pair['pos'],$pair['neg']); }
return $pair_count;
}
echo pairs($input);
PD9waHAKCiRpbnB1dCA9IGFycmF5ICgzLCA2LCAtMywgNSwgLTEwLCAzLCAxMCwgMSwgNywgLTEsIC05LCAtOCwgNywgNywgLTcsIC0yLCAtNyk7CmZ1bmN0aW9uIHBhaXJzKCRhcnJheT1bXSl7CiAgICAkcGFpcnMgPSBbXTsKICAgIC8vIGNvdW50aW5nIHRoZSBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgb2YgZWFjaCBudW1iZXIgaW4gdGhlIHNldAogICAgZm9yZWFjaCgkYXJyYXkgYXMgJHYpewogICAgICAgICRhdiA9IGFicygkdik7CiAgICAgICAgaWYoIWlzc2V0KCRwYWlyc1skYXZdKSkKICAgICAgICAgICAgJHBhaXJzWyRhdl0gPSBbCiAgICAgICAgICAgICAgICAncG9zJyA9PiAwLAogICAgICAgICAgICAgICAgJ25lZycgPT4gMAogICAgICAgICAgICBdOwoKICAgICAgICAoJHYgPiAwKSA/ICRwYWlyc1skYXZdWydwb3MnXSsrIDogICRwYWlyc1skYXZdWyduZWcnXSsrOwogICAgfQoKICAgICRwYWlyX2NvdW50ID0gMDsKICAgIC8vIGdldHRpbmcgdGhlIG51bWJlciBvZiBwYWlycyBmb3IgZWFjaCBudW1iZXIsIGJhc2VkIG9uIHRob3NlIGNvdW50cwogICAgZm9yZWFjaCgkcGFpcnMgYXMgJHBhaXIpewogICAgICAgICRwYWlyX2NvdW50ICs9IG1pbigkcGFpclsncG9zJ10sJHBhaXJbJ25lZyddKTsKICAgIH0KICAgIHJldHVybiAkcGFpcl9jb3VudDsKfQplY2hvIHBhaXJzKCRpbnB1dCk7