SETNJA - Setnja
Tác giả: ll931110
Ngôn ngữ: Pascal
{$inline on}
{$MODE DELPHI}
{$H+}
program SETNJA;
const
input = '';
output = '';
base = 100000000;
maxd = 900;
type
arr = array[1..maxd] of longint;
var
m,res: arr;
s: string;
procedure init;inline;
var
f: text;
begin
assign(f, input);
reset(f);
readln(f, s);
close(f);
end;
procedure mul1(k: integer);inline;
var
i: integer;
begin
for i := 1 to maxd do res[i] := res[i] * k;
for i := 1 to maxd - 1 do if res[i] > base then
begin
res[i + 1] := res[i + 1] + res[i] div base;
res[i] := res[i] mod base;
end;
end;
procedure mul2(k: integer);inline;
var
i: integer;
begin
for i := 1 to maxd do m[i] := m[i] * k;
for i := 1 to maxd - 1 do if m[i] > base then
begin
m[i + 1] := m[i + 1] + m[i] div base;
m[i] := m[i] mod base;
end;
end;
procedure ad2;inline;
var
i: integer;
begin
for i := 1 to maxd do res[i] := res[i] + m[i];
for i := 1 to maxd - 1 do if res[i] > base then
begin
inc(res[i + 1]);
res[i] := res[i] - base;
end;
end;
procedure solve;inline;
var
i: integer;
begin
fillchar(res, sizeof(res), 0);
res[1] := 1;
fillchar(m, sizeof(m), 0);
m[1] := 1;
for i := 1 to length(s) do
case s[i] of
'L': mul1(2);
'R':
begin
mul1(2);
ad2;
end;
'*':
begin
mul1(5);
ad2;
mul2(3);
end;
end;
end;
procedure printresult;inline;
var
f: text;
st: string;
i,j,k: integer;
begin
assign(f, output);
rewrite(f);
i := maxd;
while res[i] = 0 do dec(i);
write(f, res[i]);
for j := i - 1 downto 1 do
begin
str(res[j],st);
for k := 1 to 8 - length(st) do write(f, 0);
write(f, res[j]);
end;
close(f);
end;
begin
init;
solve;
printresult;
end.