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

пятница, 24 января 2020 г.

Напёрстки

Шулер показывает следующий трюк. Он имеет три одинаковых наперстка. Под первый (левый) он кладет маленький шарик. Затем он очень быстро выполняет ряд перемещений наперстков, каждое из которых – это одно из трех перемещений - 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.

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

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