Задача A. Отгадай слово

Автор:Г. Гренкин   Ограничение времени:1 сек
Входной файл:input.txt   Ограничение памяти:64 Мб
Выходной файл:output.txt  

Условие

Хрюша и Степашка играют в игру "Отгадай слово". Правила игры просты. Хрюша придумывает слово, состоящее из букв латинского алфавита, придумывает загадку и загадывает её Степашке. Задача Степашки — отгадать слово.

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

Ход Степашки заключается в том, что Степашка называет любую букву латинского алфавита.

  1. Если такая буква есть в слове и все такие буквы закрыты, то все они открываются.
  2. Если такая буква есть в слове и все такие буквы открыты, то все они закрываются.
  3. Если такой буквы нет в слове, то никакие буквы не открываются и не закрываются.

Требуется написать программу, которая читает из входного файла слово, придуманное Хрюшей, а также последовательность букв, которые назвал Степашка, и выводит в выходной файл информацию о том, какие буквы после окончания игры оказались закрытыми, а какие — открытыми.

Формат входного файла

Входной файл содержит ровно две строки.

Первая строка входного файла состоит из маленьких букв латинского алфавита и представляет собой слово, придуманное Хрюшей.

Вторая строка входного файла также состоит из маленьких букв латинского алфавита и представляет собой последовательность букв, которые называет Степашка (буквы идут в том порядке, в котором их называет Степашка).

Формат выходного файла

Требуется вывести в выходной файл ровно одну строку, имеющую такую же длину, что и первая строка входного файла, и представляющую собой слово, придуманное Хрюшей, в котором могут присутствовать закрытые буквы.

Если i-я буква открыта, то i-й символ выходной строки должен совпадать с i-м символом первой строки входного файла.

Если же буква закрыта, то соответствующий символ выходной строки должен быть '.' (точка).

Ограничения

Количество букв в слове от 1 до 15.

Количество ходов Степашки от 1 до 20.

Входные данные таковы, что если в ходе игры Степашка отгадал все буквы слова, то игра заканчивается и Степашка больше не называет буквы (входной файл на этом заканчивается).

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
frog
or
.ro.
2
frog
oro
.r..
3
frog
fffrrroooog
fr.g
4
frog
golf
f.og
5
frog
gorf
frog

Разбор

Заведём массив переменных логического типа. Ячейка массива будет хранить true, если соответствующая буква слова открыта, и false, если соответствующая буква слова закрыта.

Будем просматривать буквы, которые называет Степашка, по очереди. Для каждой буквы просмотрим все буквы слова, и если в слове встретилась буква, названная Степашкой, то значение в соответствующей ячейке массива изменяется на противоположное.

program guess_word;
var
  word: string;
  letters: string;
  word_len: integer;
  letters_count: integer;
  opened: array[1..15] of boolean;
  i, j: integer;
begin
  readln(word);
  readln(letters);

  word_len := length(word);
  letters_count := length(letters);

  for i := 1 to word_len do
    opened[i] := false;
  for i := 1 to letters_count do
  begin
    for j := 1 to word_len do
    begin
      if (word[j] = letters[i]) then
        opened[j] := not opened[j];
    end;
  end;

  for i := 1 to word_len do
  begin
    if (opened[i]) then
      write(word[i])
    else
      write('.');
  end;
end.

0.099s 0.009s 13