Найти тему
Журнал «Код»

Сложная задачка: отчёт о работе

Эта задач­ка на нестан­дарт­ное мыш­ле­ние, логи­ку и гиб­кость ума. Попро­буй­те пораз­мыш­лять над ней само­сто­я­тель­но, и если не полу­чит­ся — откры­вай­те наше реше­ние. Подоб­ные зада­чи здо­ро­во упо­ря­до­чи­ва­ют ум.

Итак, зада­ча.

Про­грам­мист сдал началь­ни­ку отчёт о выпол­нен­ных зада­чах за год. Перед этим над ним все сме­я­лись, пото­му что за любые пять меся­цев под­ряд в тече­ние года он закры­вал мень­ше задач, чем надо было по пла­ну. Но когда началь­ник при­нял отчёт, все узна­ли, что на самом деле про­грам­мист пере­вы­пол­нил план и полу­чил пре­мию.

Как это мог­ло про­изой­ти?

РЕШЕНИЕ

Эта зада­ча из тех, где мы уже зна­ем ответ, но не зна­ем реше­ния. Наша цель — при­ду­мать такое реше­ние, что­бы оно пол­но­стью под­хо­ди­ло по усло­ви­ям и при­во­ди­ло к нуж­но­му отве­ту.

В нашем слу­чае нуж­но подо­брать такое коли­че­ство выпол­нен­ных задач и задач из тре­ке­ра, что­бы за каж­дые 5 меся­цев под­ряд сум­ма задач из тре­ке­ра была боль­ше, а за год — мень­ше, чем коли­че­ство выпол­нен­ных. Или если посмот­реть наобо­рот: что­бы за каж­дые пять меся­цев под­ряд сум­ма выпол­нен­ных задач была мень­ше пла­на, а по ито­гам года — боль­ше.

Допу­стим, мидл каж­дый месяц выпол­нял по 10 задач, а сколь­ко нуж­но было — мы не зна­ем. Тогда его рабо­та выгля­дит так:

-2

Полу­ча­ет­ся, что за год он сде­лал 120 задач, и в тре­ке­ре долж­но полу­чить­ся мень­ше, чем 120.

Теперь посмот­рим на ниж­ний ряд — коли­че­ство задач в тре­ке­ре на этот месяц. Наш пери­од — 5 меся­цев, поэто­му посмот­рим, как мож­но сде­лать так, что­бы эти пери­о­ды пере­се­ка­лись как мож­но мень­ше:

-3

В точ­ках пере­се­че­ния у нас будет мате­ма­ти­че­ская магия, поэто­му запом­ним, на каких местах они полу­чи­лись. В иде­а­ле нам нуж­но полу­чить такую кар­ти­ну: в этих точ­ках пере­се­че­ния сто­ят боль­шие чис­ла, а во всех осталь­ных — еди­ни­цы, что­бы при сдви­га­нии пери­о­да вле­во или впра­во они как мож­но мень­ше вли­я­ли на общую сум­му. Про­ста­вим еди­ни­цы в нача­ле и кон­це и посмот­рим, что полу­чи­лось:

-4

Теперь возь­мём пер­вые 5 меся­цев: выпол­не­но 50 задач, а постав­ле­но — 4. Нам нуж­но, что­бы за 5 меся­цев постав­лен­ных было боль­ше, чем выпол­нен­ных, зна­чит нам нуж­но чис­ло, боль­ше, чем 50, зна­чит это будет 51. Счи­та­ем, что будет на месте пер­во­го зна­ка вопро­са: 51 − 4 = 47. Под­став­ля­ем это чис­ло на место пер­во­го зна­ка вопро­са:

-5

То же самое дела­ем с пра­вой сто­ро­ны:

-6

Кра­си­во и сим­мет­рич­но. Обра­ти­те вни­ма­ние, что в пери­од с мая по сен­тябрь мид­лу поста­ви­ли 97 задач, а он сде­лал все­го 50. Теперь про­ве­ря­ем, что у нас полу­ча­ет­ся по ито­гу года.

Выпол­не­но: 10 × 12 = 120 задач

Постав­ле­но в баг-трекере: 1 + 1 + 1 + 1 + 47 + 1 + 1 + 47 + 1 + 1 + 1 + 1 = 104 зада­чи.

То, что нам нуж­но: за любые 5 меся­цев мидл делал мень­ше, чем нуж­но, а за год — сде­лал боль­ше и пере­вы­пол­нил план. Кра­сав­чик. Мате­ма­тик. Логик. Прак­тик.

Подписывайтесь на наш канал, чтобы все сходилось!