Guest User

Untitled

a guest
Nov 19th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. $ar = file(__DIR__. '/level4_0.in');
  2. $ar = array_map('trim', $ar);
  3. array_splice($ar, 41, 1);
  4. array_splice($ar, 0, 1);
  5. $ar = array_map(function($row){
  6. $row = explode(' ', $row);
  7. $row = array_map('intval', $row);
  8. return $row;
  9. }, $ar);
  10.  
  11. [
  12. [0, 5, 5, ..],
  13. [0, 5, 5, ..],
  14. ..
  15. ]
  16.  
  17. $found = [];
  18. for ($row = 0; $row < count($ar); $row++) {
  19. for ($col = 0; $col < count($ar[$row]); $col++) {
  20. if ($ar[$row][$col] && (!$row || !$ar[$row - 1][$col])) {
  21. for ($c = $col; $c < count($ar[$row]); $c++) {
  22. if (!$ar[$row][$c]) {
  23. break;
  24. }
  25. }
  26. if (($c - $col) > 2) {
  27. for ($r = $row; $r < count($ar); $r++) {
  28. if (!$ar[$r][$col]) {
  29. break;
  30. }
  31. }
  32. if (($r - $row) > 2) {
  33. $found[] = [
  34. "row" => floor(($row + $r) / 2),
  35. "col" => floor(($col + $c) / 2),
  36. ];
  37. }
  38. }
  39. $col = $c;
  40. }
  41. }
  42. }
  43. echo "found:n";
  44. foreach ($found as $node) {
  45. echo "{$node['row']}x{$node['col']}n";
  46. }
  47.  
  48. found:
  49. 12x32
  50. 22x52
  51. 32x22
  52. 32x42
  53. 51x22
  54. 51x57
  55. 61x42
  56. 71x62
  57. 81x47
Add Comment
Please, Sign In to add comment