<?php
// your code goes here
// Author: Nayaka Ghana Subrata
class Kamus{
private $arr = [];
public function tambah
(string
$kata, array $sinonim): void
{ if (!isset($this->arr[$kata])){ $this->arr[$kata] = [];
}
foreach ($sinonim as $s){
$this->arr[$kata][$s] = true;
if (!isset($this->arr[$s])){ $this->arr[$s] = [];
}
$this->arr[$s][$kata] = true;
}
}
public function ambilSinonim
(string
$kata): ?
array{ if (!isset($this->arr[$kata])){ return null;
}
}
}
// testing
$kamus = new Kamus();
$kamus->tambah("big", ["large", "great"]);
$kamus->tambah("big", ["huge", "fat"]);
$kamus->tambah("huge", ["enormous", "gigantic"]);
print_r($kamus->ambilSinonim("big")); print_r($kamus->ambilSinonim("huge")); print_r($kamus->ambilSinonim("gigantic")); var_dump($kamus->ambilSinonim("colossal")); ?>
PD9waHAKCi8vIHlvdXIgY29kZSBnb2VzIGhlcmUKLy8gQXV0aG9yOiBOYXlha2EgR2hhbmEgU3VicmF0YQoKY2xhc3MgS2FtdXN7Cglwcml2YXRlICRhcnIgPSBbXTsKCQoJcHVibGljIGZ1bmN0aW9uIHRhbWJhaChzdHJpbmcgJGthdGEsIGFycmF5ICRzaW5vbmltKTogdm9pZHsKCQlpZiAoIWlzc2V0KCR0aGlzLT5hcnJbJGthdGFdKSl7CgkJCSR0aGlzLT5hcnJbJGthdGFdID0gW107CgkJfQoJCQoJCWZvcmVhY2ggKCRzaW5vbmltIGFzICRzKXsKCQkJJHRoaXMtPmFyclska2F0YV1bJHNdID0gdHJ1ZTsKCQkJaWYgKCFpc3NldCgkdGhpcy0+YXJyWyRzXSkpewoJCQkJJHRoaXMtPmFyclskc10gPSBbXTsKCQkJfQoJCQkkdGhpcy0+YXJyWyRzXVska2F0YV0gPSB0cnVlOwoJCX0KCX0KCQoJcHVibGljIGZ1bmN0aW9uIGFtYmlsU2lub25pbShzdHJpbmcgJGthdGEpOiA/YXJyYXl7CgkJaWYgKCFpc3NldCgkdGhpcy0+YXJyWyRrYXRhXSkpewoJCQlyZXR1cm4gbnVsbDsKCQl9CgkJcmV0dXJuIGFycmF5X2tleXMoJHRoaXMtPmFyclska2F0YV0pOwoJCQoJfQp9CgoKLy8gdGVzdGluZwoka2FtdXMgPSBuZXcgS2FtdXMoKTsKCiRrYW11cy0+dGFtYmFoKCJiaWciLCBbImxhcmdlIiwgImdyZWF0Il0pOwoka2FtdXMtPnRhbWJhaCgiYmlnIiwgWyJodWdlIiwgImZhdCJdKTsKJGthbXVzLT50YW1iYWgoImh1Z2UiLCBbImVub3Jtb3VzIiwgImdpZ2FudGljIl0pOwoKcHJpbnRfcigka2FtdXMtPmFtYmlsU2lub25pbSgiYmlnIikpOwpwcmludF9yKCRrYW11cy0+YW1iaWxTaW5vbmltKCJodWdlIikpOwpwcmludF9yKCRrYW11cy0+YW1iaWxTaW5vbmltKCJnaWdhbnRpYyIpKTsKdmFyX2R1bXAoJGthbXVzLT5hbWJpbFNpbm9uaW0oImNvbG9zc2FsIikpOwo/Pgo=