Задача 4 (5 баллов)
--------
На ленте записана последовательность символов. Известно, что
среди символов два и только два одинаковые. Установить окно
на первый из этих символов.

Длина последовательности меньше длины алфавита Корректора. В начальный
момент окошко расположено перед записью.

Пример работы программы:

Начальное состояние                 После работы программы
┬─┬─╦═╦─┬─┬─┬─┬─┬─┬─┐               ┬─┬─┬─┬─╦═╦─┬─┬─┬─┬─┐
│░│░║░║к│о│л│е│с│о│░│    ─────>     │░│░│░│к║о║л│е│с│о│░│
┴─┴─╩═╩─┴─┴─┴─┴─┴─┴─┘               ┴─┴─┴─┴─╩═╩─┴─┴─┴─┴─┘

решение куратора
----------------

алгоритм
--------
Организуем рекурсивный просмотр записи.
Для каждого текущего символа ищем равный ему справа. Если
такой символ найден, возвращаем окно на его левый дубликат
и заканчиваем работу.

Решение
-------

ЭТО вход                            │
 ВПРАВО                             │Шаг вправо по записи.
                                    │
 ЕСЛИ НЕ ПУСТО                      │
  ТО                                │Если запись не кончилась, то
  {                                 │
    ЯЩИК+                           │-- копируем очередной символ в ящик
    работа                          │-- ищем совпадающий символ и
                                    │   возвращаемся к исходному символу
    ОБМЕН                           │-- если в ящике пусто, то символ не
    ЕСЛИ ПУСТО ТО { ОБМЕН вход }    │   найден, продолжаем поиск со
  }                                 │   следующим символом.
КОНЕЦ                               │
                                    │
                                    │Поиск совпадающего символа и
ЭТО работа                          │возврат к исходному.
 ВПРАВО                             │Сдвиг окошка к следующему символу.
 ЕСЛИ Я#Л                           │Если символ не совпадает с тем,
  ТО                                │что в ящике, то:
  {                                 │-- если запись не кончилась, то
    ЕСЛИ НЕ ПУСТО ТО работа         │   продолжаем поиск
    ИНАЧЕ            ЯЩИК+          │-- если запись кончилась, то пишем
                                    │   в ящик ПУСТО
                                    │
    ВЛЕВО                           │Рекурсивная пружинка
  }                                 │
  ИНАЧЕ ВЛЕВО                       │Когда символ найден, перед работой
КОНЕЦ                               │пружинки корректирующий шаг влево.


                            * * *

Все решения без исключения использовали в своей основе описанный выше
алгоритм.

                            * * *


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

Решение 1.
Автор решения Плотников Женя
Оценка: 5

описание алгоритма
------------------
Сначала в ящик памяти удаляется первый символ строки, записанной на
ленте. Затем проверяется, есть ли такой же символ в строке. Если его
нет, то символ возвращается на место ( ОБМЕНОМ ), продолжается поиск
со следующим символом аналогично. Если повтор найден, то символ тоже
вазвращается на место командой ЯЩИК- и выполнение программы
заканчивается.

Решение 2
Автор решения Елькин Сёма, 5 класс
Оценка: 5

ОПИСАНИЕ АЛГОРИТМА

Исполнитель БЕРЕТ В ЯЩИК ПЕРВУЮ БУКВУ , ИДЕТ ВПРАВО И ИЩЕТ ПОВТОР.
ПОТОМ ВОЗВРАЩАЕТСЯ ОБРАТНО НА ПЕРВУЮ БУКВУ И ИДЕТ ВПРАВО,
БЕРЕТ ВТОРУЮ БУКВУ ИЩЕТ ПОВТОР ПОКА НЕ КОНЧИТСЯ СЛОВО.
ЕСЛИ НЕТ ПОВТОРНОЙ БУКВЫ, ТО ОН ИДЕТ ДО ПУСТО ПОТОМ ВПРАВО И ПИШЕТ СЛОВО НЕТ.
КОНЕЦ.

Команда 3102
------------
.\02\02.txt
Авторы решения: Богатырев Геннадий
Оценка: 5

описание алгоритма
------------------
1) Организация цикла с использованием косвенной рекурсии
  (условие выхода - совпадение символа в ящике с символом в окне ленты):
-  запоминает текущий символ
-  ищет символ, аналогичный запомненному: если имеет место совпадение,
   то возвращается исходному символу, иначе доходит до конца слова, возвращается
   к исходному, переходит к следующему символу и запоминает  его.



Команда 3104
------------
.\04\04.txt
Коллективное решение
Оценка: 4.5

Описание алгоритма.
Отсутствует.

комментарий куратора
--------------------
Алгоритм такой же как у куратора.
Замечаний по работе программе нет. Балл снижен за отсутствие описаний.


Команда 3105
------------
.\05\05.txt
Автор Устич Дима
Оценка: 5

описание алгоритма
------------------
Помещаем в ящик первый символ и сравниваем его с каждым символом в
записи, начиная со второго, одновременно закручиваем пружину,
позволяющую вернуть окно в исходное положение, если такой символ до
конца записи так и не встретился, то возвращаемся в исходное положение
и помещаем в ящик следующий символ и так пока не найдем повторяющийся
символ.

Команда 3106
------------
Оценка: 2

ПОКА НЕ ЦИФРА -- это очень плохо! А если все символы -- цифры!



Команда 3107
------------
.\07\07.txt
Оценка: 0

Решения нет.

Команда 3108
------------
.\08\08.txt
Автор: Екатерина Витальевна Мороз.
Оценка: 3

описание алгоритма
------------------
Переход к концу записи и с конца последовательно копировать символы в
ящик. Проходя по записи влево сравнивая символы найти похожий.
Программа "ломается", когда запись состоит из двух символов.


комментарий куратора
--------------------
Никакого преимущества проверки с правого конца не дают, но
получается лишний проход записи.

Команда 3110
------------
.\10\10.txt
.\10\1041.kor
Авторы: Селезнева А. и Астофурова Л. 7 класс)
Оценка: 4

описание алгоритма
------------------
- взять первую букву в ящик
- пройти все слово до конца или до этой буквы
   если слово пройдено до конца, то вернуться на следующую букву
   если нашли эту букву, то вернуться на саму букву.

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

Программа в конце каждой проверки записывает в ящик 0:

....
       ИНАЧЕ
           {                           
            ПИШИ 0                     
            ЯЩИК+                      
            ПИШИ ПУСТО
           }                           

зачем? Это -- лишние действия. А самое ужасное, если в самой записи на
ленте есть нули?

Команда 3112
------------
.\12\12.txt
.\12\1241.kor
Автор Громков Сергей
Оценка: 3

комментарий куратора
--------------------
Отдельного описания алгоритма нет (что плохо), но программа тщательно
задокументирована.
Без записи единицы (подтверждения) можно было бы и обойтись, тем более, что
это приводит к ошибкам, когда 1 встречается в записи, например "1233".

Команда 3114
------------
.\14\14.txt
Авторы решения: не указаны
Оценка: 4.8

описание алгоритма
------------------
Отсутствует.

