fork(2) download
  1. <?php
  2.  
  3. class Less
  4. {
  5. private $val = 0;
  6.  
  7. public function __construct ($value)
  8. {
  9. $this->val = $value;
  10. }
  11.  
  12. public function __invoke ($value)
  13. {
  14. return $this->val < $value;
  15. }
  16. }
  17.  
  18. function random_array($size, $min, $max)
  19. {
  20. $array = [];
  21. for ($i = 0; $i < $size; $i++)
  22. $array[] = rand($min, $max);
  23. return $array;
  24. }
  25.  
  26. function sum_if(array $array, Callable $predicate)
  27. {
  28. $sum = 0;
  29. for ($i = 0; $i < count($array); $i++)
  30. if ($predicate($array[$i]))
  31. $sum += $array[$i];
  32. return $sum;
  33. }
  34.  
  35. $n = (int)trim(fgets(STDIN));
  36. $a = (int)trim(fgets(STDIN));
  37.  
  38. $array = random_array($n, 0, 20);
  39. $sum = sum_if($array, new Less($a));
  40.  
  41. echo "Array: " . implode(", ", $array) . "\n" . "Sum: " . $sum;
  42. ?>
Success #stdin #stdout 0.01s 20520KB
stdin
10
5
stdout
Array: 17, 4, 4, 14, 0, 11, 20, 12, 20, 4
Sum: 94