Here is my own solution in PASCAL:
program ride(input,output);
const
a:array[
'
A
'
..
'
Z
'
]of integer
=
(
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
26
);
var
s:
string
;
l,i,sum1,sum2:longint;
begin
assign(input,
'
ride.in
'
);
reset(input);
assign(output,
'
ride.out
'
);
rewrite(output);

readln(s);l:
=
length(s);sum1:
=
1
;
for
i:
=
1
to l
do
sum1:
=
sum1
*
a[s[i]];
readln(s);l:
=
length(s);sum2:
=
1
;
for
i:
=
1
to l
do
sum2:
=
sum2
*
a[s[i]];
if
sum2 mod
47
=
sum1 mod
47
then writeln(
'
GO
'
)
else
writeln(
'
STAY
'
);

close(input);
close(output);
end.
Solutions generally run in under 0.01 seconds.
To download the PASCAL source file: ride.pas
























To download the PASCAL source file: ride.pas