Pull to refresh
26
0
Ратьков Дмитрий @dmrt

Вэб-программист

Send message
Ничего не понял, но вспомнил, что недавно делал переход на версию 1.05 в АТОЛ.
Да уж, ну ее, эту рассу господ.
Да, или во дворе вокруг спортплощадки после 12 ночи я гуляю до часу или до двух ночи с айпадом.
Да, силовое поле было бы иделаьно иметь в читалке, если оно не будет приносить вред прохожим, т.к. это противозаконно, только отталкивать если бы на полметра, тогда хорошо.
Слишком дорое удовольствие получится тогда — читать.
Да и пешком лучше, больше кислорода.
Лично я читаю лучше всего когда иду по улице, если я не иду, я теряю в скорости чтения и совсем перестаю читать через пару минут.
Потому читалка должна показывать дорогу перед собой, подсвечивать красным препятстивия, стобы, бардюры, машины, красный свет светофора, чтобы можно было идти не подымая головы.
Хорошо у вас. Все используете, кроме Perl. Жаль, что ему не нашлось места в вашем радаре.
Сначала подумал, что в поездке по стрfне Марк кормил корову BBQ.
В любом случае Маркуша — это фронтенд, а за ним стоят серьезные, адекватные дядьки. Может быть сам Марк даже не догадывается о них.
А если увольняет летом подать кросовки?
Gitiny нужно им свой создать.
Да, вы правы, переставлять элементы тут лишнее.
use List::Util ();

my $arr = [ 15, 18, 2, 3, 6, 12 ]; 

sub get_turn_count
{
    my @arr = @_;
    my $min = List::Util::min( @arr );

    my $k = 0;
    foreach ( 0 .. $#arr )
    {
        if( $arr[ $k ] == $min and $arr[ $k - 1 ] > $el )
        {
            last;
        }
        $k++;
    }

    return scalar( @arr ) - $k;
}

print get_turn_count( @$arr ), " \n";
И как же нам тогда решать такую задачу прикажите? Может быть вы что-то не договариваете?
Даже если ее и можно решить, то решение на порядок не очевидней, по сравнению с другими задачами, у них ответ лежит почти на поверхности.
У меня вопросы по шнурам:
1. То что одна половина горит 10 мин, а другая 50 мин — это конкретные условия задачи или просто как пример, на самом деле время может отличаться и оно не известно?
2 Если целиком шнур горит неравномерно, то половины горят равномерно?
3. Можно ли отличить концы шнуров, т.е. с какой стороны быстрее, а с какой медленнее сразу же, до зажигания?
Да, вы правы, вот так гораздо эффективнее:
my $arr = [ 15, 18, 2, 3, 6, 12 ]; 

sub get_turn_count
{
    my @arr = @_;
    my $min = List::Util::min( @arr );

    my $k = 0;
    foreach ( @arr )
    {
        if( $arr[ 0 ] == $min and $arr[ - 1 ] != $arr[ 0 ] )
        {
            last;
        }
        unshift( @arr, pop( @arr ) );
        $k++;
    }

    return $k;
}

print get_turn_count( @$arr ), " \n";

Хотя сортировка — это O(n log n)
А сравнение двух массивов — это O(2N), причем по сортированному не нужно было мне проходится в цикле каждый раз, можно было бы join его вычислить перед циклом, так что сложность сравнения тут O(N)
Итого O(n log n) + k * O(N)
Язык Perl.
Сортировка — это O(log N) один раз.
А дальше стандартные функции для работы с массивами, со списками добавление элемета в начало массива и выталкивание последнего. Не могу точно сказать какая тут сложность, но если это динамический массив, то тоже O(N) получается.
Хотя я чуть неправильно посчитал, на 250 у меня будет 1750.
Ну да, если на 200-ый, то мы там будем иметь там 2000 бананов.
Едем на 333 км еще, оставляем на 533-ем 333 банана, возвращаемся, берем 1К, в итоге привозим 533 банана.

По моей схеме имеем 1750 на 250-ом км.
Отвозим еще на 250 км, на 500-й 250 бананов, возвращаемся за 1К, едем в конечную точку, подбираем на 500-ом 250 бананов, в итоге получается привезем 500 бананов.

Да, получается, что на 200-ый лучше сначала.
Anti-clockwise rotated array
По-моему у вас ошибка в примерах ответа: в первом случае ответ — 4, во втором — 1 и в третьем все правильно — 0

my $arr = [ 15, 18, 2, 3, 6, 12 ]; 

sub get_turn_count
{
    my $arr = shift;
    my @sorted = sort { $a <=> $b } @$arr;

    my $k = 0;
    while( 1 )
    {
        last if( join( ',', @$arr ) eq join( ',', @sorted ) );

        $k++;
        unshift( @$arr, pop( @$arr ) );
    }

    return $k
}

print get_turn_count( $arr ), " \n";
У меня получилось максимум всего лишь 416 бананов.
Сначала забрасываем бананы на 250-ый километр в три этапа, итого там будет 1500 бананов, половину мы потеряем, скормили прожорливому верблюду.
Затем закидываем на 416-ый километр остальные 1000 бананов, потеряв 500 бананов.
Основная цель — это найти максимальный километр, куда можно закинуть 1К бананов.
Дальше грузим всю тысячу и идем до конца, в итоге довозим всего лишь 416 бананов.
Это скорее всего для программистов, на C и может не только, которые хотят улучшить свои навыки значительно. Переписывая блок за блоком и компилируя поэтапно.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity