Шулер показывает следующий трюк. Он имеет три одинаковых наперстка. Под первый (левый) он кладет маленький шарик. Затем он очень быстро выполняет ряд перемещений наперстков, каждое из которых – это одно из трех перемещений - A, B, C:A - обменять местами левый и центральный наперстки,
B - обменять местами правый и центральный наперстки,
C - обменять местами левый и правый наперстки.
Необходимо определить, под каким из наперстков окажется шарик после всех перемещений.
Входные данные
В единственной строке входного файла INPUT.TXT записана строка длиной от 1 до 50 символов из множества {A, B, C} – последовательность перемещений.
Выходные данные
В единственную строку выходного файла OUTPUT.TXT нужно вывести номер наперстка, под которым окажется шарик после перемещений.
Пример
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.
Комментариев нет:
Отправить комментарий