Facebook Hacker Cup 2014 Finals
Kit is competing on the latest popular gameshow, Fortunate Wheels. On
this show, there is a secret word
consisting only of uppercase letters, known only to the host, and
contestants can pay points to buy sequences of letters in hopes of
matching part of
and earning more points! This show is clearly a
scam, as the probability of earning more points than are spent is
extremely low. Fortunately, Kit has come prepared – he knows the secret
word! Even so, getting as many points as possible will not be easy.
There are
basic deals which contestants can take.
The
-th deal costs
points
, and
allows any sequence of
letters
to be
purchased. Furthermore, deals can be combined to purchase longer
sequences! Combining a deal with cost
and length
with
another deal (potentially the same one) with cost
and length
creates a new deal with cost
and length
(as long as
),
which can in turn be used to create even bigger deals. For
example, if
, then a basic deal with cost and length equal to
could be combined with itself repeatedly to yield a new deal with both
cost and length equal to any positive integer smaller than
.
Once Kit purchases a sequence of letters using one (potentially
non-basic) deal, it will be matched against the secret word – twice! The
host will spin the First Fortunate Wheel to select the starting index in
for the first matching, which is chosen uniformly at random such
that the sequence will fit entirely within
. Then, the host will spin
the Second Fortunate Wheel to select the starting index for the second
matching, which is chosen uniformly at random such that the sequence
will fit entirely within
and such that the value given by the
First Fortunate Wheel will not be repeated. For example, if the sequence
consists of a single letter, the First Fortunate Wheel might yield any
of the indices in
with probability
each, and then the Second Fortunate Wheel might yield any of the
remaining indices with probability
each. On the other hand, if the sequence has length
, then the
first Wheel might yield either
or
, and the second Wheel must yield
the other. If, for both generated indices, the sequence miraculously
happens to be equal to the substring of
of the same length starting
at that index, then Kit will earn back
points
, where
is the
length of the sequence. If even one letter is off in either matching,
however, Kit will earn no points at all! What has the game show industry
come to?
Kit is carefully considering his first turn of the game. He obviously
wants to maximize the number of points he'll gain, but worries that
choosing the very best move might be suspicious. As such, he'd like to
find the expected point values of the
best
distinct moves before making his decision. Two moves are distinct if
they involve purchasing different sequences of letters – the deal(s)
used are ignored. Note that moves can have negative expected point
values, due to the costs of deals.
Input Specification
Line :
integer,
, the number of test cases.
For each test case:
Line :
integers,
,
,
,
,
, and
.
Line :
string,
.
Next lines:
integers,
and
, for
.
Output Specification
For each test case, output real numbers on one line (accurate to
within
in absolute or relative value), the
largest
expected point values which can be earned, in descending order.
Sample Input
2
1 3 0 1 5 6
ZZ
2 1
3 4 1 4 3 2
FOXENINBOXEN
5 2
1000 11
2 2
Sample Output
24.00000 -2.00000 -2.00000
7.05556 3.49091 3.49091 3.49091
Explanation of Sample
In the first test case, Kit's best move is to use the basic deal,
costing points, to purchase the sequence of letters
Z
. No matter
what pair of indices the two Fortunate Wheels yield, this sequence will
match and earn Kit points. Any
other sequence shorter than
cannot match
at even a single index,
so Kit's second- and third-best moves consist of using the basic deal to
purchase any other single-letter sequence, and simply losing the
points.
In the second test case, Kit's best move consists of combining the third
basic deal with itself to yield a deal with cost 5 and length 4, and
then purchasing the sequence OXEN
. His three next-best moves, which
are the only other moves which get him a positive expected point value,
involve using the third basic deal to purchase the sequences OX
,
XE
, and EN
.
Comments