Команда 3108
Задача 3. (5 баллов)  Ракета.
На поле исполнителя из кубиков собран вертикальный столбик.
Исполнитель расположен слева перед первым кубиком основания:

  ─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─
   │ │ │ │ │ │ │ │ │ │
  ─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─
   │ │5│ │ │ │ │ │ │ │
  ─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─
   │ │4│ │ │ │ │ │ │ │
  ─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─
   │ │3│ │ │ │ │ │ │ │
  ─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─
   │ │2│ │ │ │ │ │ │ │
  ─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─
   │¤│1│ │ │ │ │ │ │ │
  ─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─

Построить из кубиков "ракету":

  ─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─
   │ │ │ │ │ │ │ │ │ │
  ─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─
   │ │ │ │ │ │ │ │ │ │
  ─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─
   │ │ │ │ │ │ │ │ │ │
  ─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─
   │ │ │3│ │ │ │ │ │ │
  ─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─
   │ │2│ │5│ │ │ │ │ │
  ─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─
   │ │1│ │4│ │ │ │ │ │
  ─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─


Дополнительные условия:
1) Поле исполнителя бесконечно по всем четырем направлениям.
2) Число кубиков в исходном столбике -- любое нечетное число большее одного.
3) Надписи на кубиках могут быть любыми.

п р о в е р к а  к у р а т о р а

Решение этой задачи команды построили на основе решения предыдущей.
Поэтому замечания остаются прежними.

з а д а н и е
Провести оценку эффективности в зависимости от n (числа кубиков в
исходном столбике):

-- своего решения
-- решения куратора
-- двух решений команды 3115


Команда 3101
------------
.\01\01.txt
.\01\0131.coc
Оценка: 1

а л г о р и т м
Нет описаний.

п р о г р а м м а
 ЭТО РАКЕТА
  ПОВТОРИ 2 ВВЕРХ
  ВПРАВО                               
  ВЛЕВО                                
  ШАГ                                  
  ШАГ                                  
  ПОВТОРИ 2 ВПРАВО                     
  ВВЕРХ                                
  ВПРАВО                               
  ПОВТОРИ 3 ВНИЗ                       
КОНЕЦ                                  
ЭТО ШАГ                                
 ВВЕРХ                                 
 ПОВТОРИ 2 ВПРАВО                      
 ПОВТОРИ 2 ВЛЕВО                       
КОНЕЦ

к о м м е н т а р и й  к у р а т о р а

Частное решение.

Команда 3102
------------
.\02\02.txt
Оценка: 4.5
Нет решения.

Команда 3108
------------
.\08\08.txt
.\08\0831.coc

Оценка: 4
Автор решения: Каменев Артем.

Описание алгоритма: Кукарача ищет последний кубик столбика, после чего
проходит вдоль столбика вниз и останавливается на клетке, следующей за
срединным кубиком, двигается вверх и двигает вправо всю часть столбика
выше себя на одну клетку вправо. Обходит срединный кубик и двигает
оставшуюся часть столбика еще на одну клетку вправо. Сдвигает последнюю
вниз и получает "ракету".

Программа:        
ЭТО РАКЕТА
СЧЕТ                                   
ПОДВИНУТЬ
ПОДВИНУТЬ_2
КОНЕЦ                                  
ЭТО СЧЕТ //Отделение левой "стенки"    
ВПРАВО     //ракеты                    
ЕСЛИ НЕ ПУСТО ТО                       
{                                      
 ВЛЕВО                                 
ВВЕРХ                                  
 ИДИ                                   
}
КОНЕЦ                                  
ЭТО ИДИ                                
ВПРАВО                                 
ЕСЛИ НЕ ПУСТО ТО
{                                      
ВЛЕВО                                  
ВВЕРХ                                  
СЧЕТ                                   
}                                      
ВНИЗ    //Отсчет кубиков, которые пой- 
//дут на строительство "носа" и правой 
//стенки ракеты.
КОНЕЦ
ЭТО ПОДВИНУТЬ  //Подвинуть кубики из   
//которых Кукарача будет строить       
//"нос" и правый борт ракеты на одну   
//клетка вправо.                       
ВПРАВО                                 
ЕСЛИ НЕ ПУСТО ТО                       
{                                      
ВЛЕВО                                  
ВВЕРХ
ПОДВИНУТЬ                              
}                                      
ИНАЧЕ ПОВТОРИ 2 ВВЕРХ //Коррекция по-  
//ложения исполнителя.
ВНИЗ                                   
КОНЕЦ                                  
ЭТО ПОДВИНУТЬ_2  //Исполнитель отде-   
//ляет "правый борт" ракеты            
ВПРАВО                                 
ЕСЛИ НЕ ПУСТО ТО                       
{                                      
ВЛЕВО
ВВЕРХ
ПОДВИНУТЬ_3                            
}                                      
ИНАЧЕ ВПРАВО                           
ВНИЗ                                   
КОНЕЦ                                  
ЭТО ПОДВИНУТЬ_3                        
ВПРАВО                                 
ЕСЛИ НЕ ПУСТО ТО                       
{
ВЛЕВО                                  
ВВЕРХ                                  
ПОДВИНУТЬ_2                            
}
ИНАЧЕ ВПРАВО                           
ВНИЗ                                   
КОНЕЦ                                  

к о м м е н т а р и й  к у р а т о р а

Программа работает. Лишние корректирующие движения.
Плохое фориатирование программы.

Команда 3110
------------
.\10\10.txt
.\10\1031.coc

Оценка: 2

Алгоритм:
1. Счет: поиск последнего кубика с запоминанием половины шагов
Возврат к среднему кубику.
2. Сдвиг: Сдвиг половины кубиков вправо и возврат к кубику, лежащему
на среднем.
3. Сдвиг1: поиск вершины с одновременным сдвигом кубиков и запоминанием
пройденных шагов. Сдвиг правого столбика на место.

п р о г р а м м а
ЭТО Ракета
 ВПРАВО                                
 Счет                                  
 Сдвиг                                 
 Сдвиг1                                
 КОНЕЦ                                 
                                       
ЭТО Счет
 ЕСЛИ НЕ ПУСТО                         
 ТО                                    
 {                                     
   ПОВТОРИ 2 Шаг                       
   Счет                                
 }                                     
 ВНИЗ                                  
 КОНЕЦ                                 
                                       
ЭТО Шаг                                
 ВЛЕВО
 ВВЕРХ
 ВПРАВО                                
КОНЕЦ                                  

ЭТО Сдвиг                              
ВПРАВО                                 
ЕСЛИ НЕ ПУСТО ТО                       
{                                      
ВЛЕВО                                  
ВВЕРХ                                  
Сдвиг
}                                      
ИНАЧЕ ПОВТОРИ 2 ВВЕРХ                  
ВНИЗ                                   
КОНЕЦ                                  
                                       
ЭТО Сдвиг1                             
ВПРАВО                                 
ЕСЛИ НЕ ПУСТО ТО                       
{                                      
ВЛЕВО                                  
ВВЕРХ
Сдвиг1
}                                      
ИНАЧЕ ВПРАВО                           
ВНИЗ
КОНЕЦ                                  


к о м м е н т а р и й  к у р а т о р а

Лишние корректирующие движения исполнителя.
Плохое форматирование программы.

Команда 3113
------------
.\13\13.txt
.\13\1013.coc

Оценка: 0

Нет решения.


Команда 3114
------------
.\14\14.txt
.\14\1431.coc

Оценка: 3

Авторы решения: Банников Андрей, Мавлеткулов Руслан, Зайнагутдинов Азат

Описание алгоритма: Определяется высота столба, используя рекурсивный
алгоритм, с учетом того, что количество элементов столба нечетное.
Разбиение на две части аналогично задаче 2.

п р о г р а м м а
ЭТО ПРО1
ПОВТОРИ 2 ВПРАВО                       
ЕСЛИ НЕ ПУСТО ТО                       
       { ПОВТОРИ 2 ВЛЕВО               
         ВВЕРХ                         
         ПОВТОРИ 2 ВПРАВО              
         ПОВТОРИ 2 ВЛЕВО               
         ВВЕРХ
         ПРО1 }                        
   ИНАЧЕ ПОВТОРИ 2 ВПРАВО              
ВНИЗ                                   
КОНЕЦ                                  
                                       
ЭТО РАКЕТА                             
ПРО1                                   
ВЛЕВО                                  
ВПРАВО                                 
ВНИЗ                                   
ПРО2                                   
ПОВТОРИ 4 ВПРАВО
ПОВТОРИ 2 ВЛЕВО                        
ВВЕРХ
ПРО3                                   
ПРО4                                   
ПРО5                                   
КОНЕЦ                                  
                                       
ЭТО ПРО5                               
ВЛЕВО                                  
ЕСЛИ НЕ ПУСТО ТО { ВПРАВО
                   ВНИЗ                
                   ПРО5 }              
     ИНАЧЕ { ПОВТОРИ 4 ВЛЕВО           
             ВВЕРХ }                   
КОНЕЦ                                  
ЭТО ПРО4                               
 ВВЕРХ                                 
 ПОВТОРИ 2  ВПРАВО                     
 ВНИЗ                                  
 ПОВТОРИ 3 ВЛЕВО                       
 ПОВТОРИ 2 ВПРАВО                      
 ВНИЗ
КОНЕЦ                                  
ЭТО ПРО3
 ВПРАВО                                
 ЕСЛИ НЕ ПУСТО ТО { ВЛЕВО              
                    ВВЕРХ              
                    ПРО3 }             
        ИНАЧЕ ВПРАВО                   
 ВНИЗ                                  
КОНЕЦ                                  
ЭТО ПРО2
 ВЛЕВО                                 
 ВЛЕВО                                 
 ЕСЛИ НЕ ПУСТО ТО { ПОВТОРИ 2 ВПРАВО   
                    ВНИЗ               
                    ПРО2 }             
    ИНАЧЕ  ПОВТОРИ 2 ВЛЕВО             
 ВВЕРХ                                 
КОНЕЦ                                  

к о м м е н т а р и й  к у р а т о р а
Очень много лишних движений исполнителя.
Не всюду хорошее форматирование программы.

Команда 3115
------------
.\15\15.txt
.\15\1511.coc

Оценка: 5

Решение 1531
Автор : Казанцев Лев
Алгоритм : В процедуре "Ракета" исполнитель выходит на главную позицию
и начинает главную процедуру "Сдвинь". В этой рекурсивной процедуре
он считает пары кубиков, сдвигая каждый второй.
После этого он начинает выполнять отложенную процедуру "Опусти".
За ней идёт процедура "Наконечник", в которой исполнитель сдвигает
верхний кубик в центр. 

п р о г р а м м а 1531

ЭТО Ракета                             
 ВВЕРХ
 Сдвинь                                
 Наконечник                            
КОНЕЦ                                  
                                       
ЭТО Сдвинь                             
 ПОВТОРИ 2 ВПРАВО                      
 ЕСЛИ НЕ ПУСТО                         
  ТО {                                 
      Шаг                              
      Сдвинь                           
      Опусти
     }                                 
КОНЕЦ                                  

ЭТО Шаг
 ПОВТОРИ 2 ВЛЕВО                       
 ПОВТОРИ 2 ВВЕРХ                       
КОНЕЦ                                  
                                       
ЭТО Опусти                             
 ВЛЕВО                                 
 ВНИЗ
 ПОВТОРИ 2 ВПРАВО                      
 ВНИЗ                                  
 ВЛЕВО                                 
 ВВЕРХ                                 
КОНЕЦ                                  
                                       
ЭТО Наконечник                         
 ПОВТОРИ 2 ВЛЕВО                       
 ВНИЗ                                  
 ВПРАВО                                
КОНЕЦ

Решение 1532
Автор: Плотников Евгений
Описание  алгоритма и программа
//-------------------------------------
// Описание                            
//  Первая часть:                      
//    Ставит исполнителя на исходное   
//  место и запускает Вторую часть.    
//  Вторая часть:                      
//    Отсчитывает каждый второй кубик
//  и запоминает это количество.       
//  Посчитав, возвращает кубики на      
//  место (аналогично) с помощю Третьей 
//  части.                             
//  Четвертая часть:                   
//    Делит весь столбик пополам, а    
//  именно:отпускается пружина из      
//  части II и опускает пружиной из    
//  части III.                         
// Описание                            
//           Автор: Плотников Евгений
//-------------------------------------
ЭТО Ракета                             
  ВВЕРХ
  ВПРАВО
  ВЛЕВО                                
  Считай                               
КОНЕЦ                                  
// Конец "Ракета"
//-------------------------------------
ЭТО Считай                             
  ПОВТОРИ 2 ВВЕРХ
  ВПРАВО                               
  ЕСЛИ НЕ ПУСТО                        
       ТО                              
          {                            
            ВЛЕВО                      
            Считай                     
          }                            
       ИНАЧЕ                           
             {                         
               ПОВТОРИ 2 ВПРАВО        
               Возврат
               ВПРАВО                  
               ВЛЕВО                   
               ВВЕРХ
               Исходная
             }                         
  ВНИЗ                                 
КОНЕЦ                                  
// Конец "Считай"
//-------------------------------------
ЭТО Возврат                            
  ПОВТОРИ 2 ВНИЗ
  ВЛЕВО                                
  ЕСЛИ НЕ ПУСТО                        
       ТО                              
          {                            
            ВПРАВО                     
            Возврат                    
          }                            
       ИНАЧЕ ПОВТОРИ 2 ВЛЕВО           
  ВВЕРХ                                
КОНЕЦ                                  
// Конец "Возврат"
//-------------------------------------
ЭТО Исходная                           
  ПОВТОРИ 2 ВПРАВО
  ЕСЛИ НЕ ПУСТО
       ТО                              
          {                            
            ПОВТОРИ 2 ВЛЕВО            
            ВВЕРХ
            Исходная                   
          }                            
       ИНАЧЕ
             {
               ВПРАВО                  
               ВНИЗ                    
             }                         
                                       
КОНЕЦ                                  
// Конец "Исходная"                     
//-------------------------------------

к о м м е н т а р и й  к у р а т о р а
Обе программы работают правильно.
Задание авторам: подсчитать, какая из программ более эффективная
(оценить и вариант куратора).

Команда 3118
------------
.\18\18.txt

Оценка: 0

Нет решения
