There are 10 vertical and horizontal squares on a plane. Each square is painted blue and green
- برمجة بي اتش بي
- 2021-09-08
- mhanasmh00489829403
الأجوبة
<?php
{
$field = array();
for ($i = 0; $i < 12; $i++) {
$field[] = str_split(rtrim(fgets(STDIN)));
}
fscanf(STDIN, '');
$c = 0;
for ($i = 0; $i < 10; $i++) {
for ($j = 0; $j < 10; $j++) {
if ($field[$i][$j] === '1') {
dfs($field, array($i, $j));
$c++;
}
}
}
echo "Number of islands: \n";
echo $c . PHP_EOL;
}
function dfs(&$field, $s) {
$stack = array($s);
$dx = array(1, -1, 0, 0);
$dy = array(0, 0, 1, -1);
while (count($stack)) {
$node = array_pop($stack);
$field[$node[0]][$node[1]] = '0';
for ($i = 0; $i < 4; $i++) {
$nx = $node[1] + $dx[$i];
$ny = $node[0] + $dy[$i];
if (!isset($field[$ny][$nx]) || $field[$ny][$nx] === '0') {
continue;
}
$stack[] = array($ny, $nx);
}
}
}
?>
Sample Input:
1100000111
1000000111
0000000111
0010001000
0000011100
0000111110
0001111111
1000111110
1100011100
1110001000
Sample Output:
Number of islands: 5
أسئلة مشابهة
القوائم الدراسية التي ينتمي لها السؤال