VladeslavPavlo
23.02.2022 12:59

На бес­ко­неч­ном поле есть го­ри­зон­таль­ная и вер­ти­каль­ная стены. Пра­вый конец го­ри­зон­таль­ной стены со­единён с ниж­ним кон­цом вер­ти­каль­ной стены. Длины стен не­из­вест­ны. В каж­дой стене есть ровно один про­ход, точ­ное место про­хо­да и его ши­ри­на не­из­вест­ны. Робот на­хо­дит­ся в клет­ке, рас­по­ло­жен­ной не­по­сред­ствен­но спра­ва от вер­ти­каль­ной стены у её верх­не­го конца. На ри­сун­ке ука­зан один из воз­мож­ных спо­со­бов рас­по­ло­же­ния стен и Ро­бо­та (Робот обо­зна­чен бук­вой «Р»). На­пи­ши­те для Ро­бо­та ал­го­ритм, за­кра­ши­ва­ю­щий все клет­ки, рас­по­ло­жен­ные не­по­сред­ствен­но выше го­ри­зон­таль­ной стены и пра­вее вер­ти­каль­ной стены. Про­хо­ды долж­ны остать­ся не­за­кра­шен­ны­ми. Робот дол­жен за­кра­сить толь­ко клет­ки, удо­вле­тво­ря­ю­щие дан­но­му усло­вию. На­при­мер, для при­ведённого выше ри­сун­ка Робот дол­жен за­кра­сить сле­ду­ю­щие клет­ки (см. ри­су­нок).

При ис­пол­не­нии ал­го­рит­ма Робот не дол­жен раз­ру­шить­ся, вы­пол­не­ние ал­го­рит­ма долж­но за­вер­шить­ся. Ко­неч­ное рас­по­ло­же­ние Ро­бо­та может быть про­из­воль­ным. Ал­го­ритм дол­жен ре­шать за­да­чу для лю­бо­го до­пу­сти­мо­го рас­по­ло­же­ния стен и лю­бо­го рас­по­ло­же­ния и раз­ме­ра про­хо­дов внут­ри стен. Ал­го­ритм может быть вы­пол­нен в среде фор­маль­но­го ис­пол­ни­те­ля или за­пи­сан в тек­сто­вом ре­дак­то­ре. Со­хра­ни­те ал­го­ритм в тек­сто­вом файле.


На бес­ко­неч­ном поле есть го­ри­зон­таль­ная и вер­ти­каль­ная стены. Пра­вый конец го­ри­зон­таль

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
гулнора
06.12.2020 05:12
Хосспаде Иегове, да научитесь же вы язык указывать! Perl.
2.
@array; #Формат ввода не задан, будем считать что он уже заполнен.
$min = $array[0];
$max = $array[0];
for $i (@array) {
    $min = $i if ($i < $min);
    $max = $i if ($i > $min);
}
%hash = map {$_ => 1} @array;
for $i in ($min..$max) {
    print "$i " if (!(exists $hash{$i}));
}
3.
use Quantum::Superpositions; #Модуль для квантовых вычислений, жутко удобная штука.
@primes;
$n = <>;
push @primes, ($i) if ($i % all(2..sqrt($i)+1) != 0) i for $i (2..$n);
#ответ в массиве @primes.
4. На этот вопрос я не так давно отвечал, ну ладно.
$n = <>;
@multipliers;
for $i (2..$n) {
    if (!($n % $i)) {
        push @multipliers, ($i);
        $n /= i;
    }
}
#ответ в массиве @multipliers.
А теперь укажите-таки язык и я, если с этим языком знаком напишу нормальный, не извращённый ответ.
0,0(0 оценок)
Ответ:
ЗаНоЗа169
06.12.2020 05:12
Хосспаде Иегове, да научитесь же вы язык указывать! Perl.
2.
@array; #Формат ввода не задан, будем считать что он уже заполнен.
$min = $array[0];
$max = $array[0];
for $i (@array) {
    $min = $i if ($i < $min);
    $max = $i if ($i > $min);
}
%hash = map {$_ => 1} @array;
for $i in ($min..$max) {
    print "$i " if (!(exists $hash{$i}));
}
3.
use Quantum::Superpositions; #Модуль для квантовых вычислений, жутко удобная штука.
@primes;
$n = <>;
push @primes, ($i) if ($i % all(2..sqrt($i)+1) != 0) i for $i (2..$n);
#ответ в массиве @primes.
4. На этот вопрос я не так давно отвечал, ну ладно.
$n = <>;
@multipliers;
for $i (2..$n) {
    if (!($n % $i)) {
        push @multipliers, ($i);
        $n /= i;
    }
}
#ответ в массиве @multipliers.
А теперь укажите-таки язык и я, если с этим языком знаком напишу нормальный, не извращённый ответ.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота