Вказівки щодо розв'язання завдання № 7
відбірково-тренувальних зборів
команди міста Києва

7.1. Многогранник-1 (граф як модель многогранника)

  1. Виділення граней многогранника здійснюють обходом граней по периметру у порядку збільшення кількості вершин грані: 3, 4, 5, 6, 7 і 8. Це роблять (оптимізованим) перебором усіх послідовностей номерів вершин багатогранника, в яких:

    • кожну наступну вершину з'єднано з попередньою ребром;
    • останню вершину з'єднано ребром з першою вершиною;
    • номер першої вершини — найменший з номерів усіх вершин;
    • номер другої вершини — менший від номера останньої вершини;
    • жоден номер не зустрічається у послідовності двічі;
  2. Аналіз, чи є виділена замкнена ламана гранню, здійснюють таким чином:

    • вибирають вершину з найменшим номером, що не є вершиною ламаної;

    • знаходять послідовно всі вершини, які можна досягнути ребрами многогранника без перетину ламаної з виділеної вершини з вибраної за 1, 2, 3 і т.і. кроків («пошук вшир»). Інакше кажучи, виділяємо зв'язну складову графа-многогранника по один бік від досліджуваної ламаної;

    • ламана є гранню тоді й лише тоді, коли справджуються такі обидва висловлювання:

      • довільна вершина многогранника або належить до виділеної зв'язної складової графа-многогранника по один бік від досліджуваної ламаної, або є вершиною цієї ламаної;

      • жодне ребро многогранника не є діагоналлю многокутника-ламаної (зауваження Олександра Башука, учасника відбірково-тренувальних зборів 2008 року, учнем 10 класу Києво-Печерського ліцею № 171 «Лідер»);

  3. Вилучення з подальшого розгляду ребер, які обмежуюють дві виявлені грані.

  4. Після розгляду 8-кутних граней всі ребра, що залишилися, потрібно пройти лише по одному разу, а з кожної вершини виходить або два таких ребра, або жодного, бо згідно з умовою задачі лише в одній грані кількість вершин перевищує 8.

7.2. Приватні інтереси (рекурентні співвідношення в неантагоністичній грі)

Збільшуючи номер рядка шахівниці від 1 до максимального, а для сталого рядка зменшуючи номер стовпчика від максимального до 1 послідовно знаходимо напрям руху з клітини та максимальну кількість монет, які гравець може отримати, починаючи з ходу на дану клітину.