Поиск по этому блогу

среда, 22 ноября 2017 г.

Напёрстки

(Время: 1 сек. Память: 16 Мб Сложность: 15%)
Шулер показывает следующий трюк. Он имеет три одинаковых наперстка. Под первый (левый) он кладет маленький шарик. Затем он очень быстро выполняет ряд перемещений наперстков, каждое из которых – это одно из трех перемещений - A, B, C:
  • A - обменять местами левый и центральный наперстки,
  • B - обменять местами правый и центральный наперстки,
  • C - обменять местами левый и правый наперстки.
Необходимо определить, под каким из наперстков окажется шарик после всех перемещений.
Входные данные
В единственной строке входного файла INPUT.TXT записана строка длиной от 1 до 50 символов из множества {A, B, C} – последовательность перемещений.
Выходные данные
В единственную строку выходного файла OUTPUT.TXT нужно вывести номер наперстка, под которым окажется шарик после перемещений.
Пример
INPUT.TXT
OUTPUT.TXT
1
CBABCACCC
1

Решение
var  a,b,c,i:integer;s:string;h:char;
 d:array[1..3] of integer;
f,f1:text;
begin
assign(f,'input.txt');
    reset(f);
     assign(f1,'output.txt');
     rewrite(f1);
    readln(f,s);
    c:=length(s);
    for i:=1 to 3 do
    d[i]:=0;
    d[1]:=1;
    
    for i:=1 to c do
    begin
     h:=s[i];
    case h of
    'A':begin b:=d[1]; d[1]:=d[2]; d[2]:=b; end;
    'B':begin b:=d[3]; d[3]:=d[2]; d[2]:=b; end;
    'C':begin b:=d[1]; d[1]:=d[3]; d[3]:=b; end;
        end;end;
  for i:=1 to 3 do
   if d[i]=1 then b:=i;
    write(f1,b);
    close(f);
  close(f1);
end.

Комментариев нет:

Отправить комментарий