Upload
trey-nelson
View
324
Download
1
Embed Size (px)
Citation preview
7/28/2019 All Just a Dream
1/15
All Just A Dream
Problem id: dreamTime limit: 3 seconds
Memory limit: 2048 MB
Picture in Public Domain via Wikimedia Commons
7/28/2019 All Just a Dream
2/15
A common plot device in story-telling is the All Just A Dream trope. Typical
symptoms of this trope being used are talking lions, main characters dying, yodeling
aliens on monocycles, and a general plethora of weird events. Then, of course, someonewakes up and it is revealed that everything that happened during the entire season did in
fact not happen at all. It was All Just A Dream (or some kind of hallucination), and the
days of our lives spent watching all those episodes are lost forever. In order to causefurther confusion and uncertainty, this can also be done in layers, with characters having
dreams within dreams within dreams, and so on.
When the All Just A Dream trick is taken too far and gets used too often, it can get
difficult to keep track of what has actually happened. This is where you enter the picture.You will be given a list of events, dreams, and scenarios. Each scenario specifies some
events that have happened and some others that have not happened. Your job is to
determine for each scenario whether that scenario is possible (possibly using the All JustA Dream trick).
Input
The first line of input consists of an integer0n50000, the number of events,dreams and scenarios. Then follow n lines, giving the events, dreams, and scenarios inchronological order. Each line is in one of the following forms:
An event line is of the form E e, indicating that event e happens (see below forformat ofe).
A dream line is of the form D r, indicating that the last revents that happenedwere All Just A Dream. Note that these events are now considered to not have
happened, so they should not be counted when processing subsequent D lines.
A scenario line is of the form S ke1 ek, where 1k30 is an integergiving the number of events and e1,,ek is the list of events of the scenario. In ascenario, each event may be prefixed with a !, indicating that the event did not
happen in this scenario.
Events are strings containing at most 20 characters and using only the characters a-z
and underscores (_). For D lines, you can assume that ris an integer between 1 and R,where R is the total number of events that have happened so far (and that have not turnedout to be a dream). For E lines, you can assume that e is not an event that has already
happened, except if the previous occurence of the event turned out to be a dream, inwhich case it can happen again.
Warning
This problem has somewhat large amounts of input and output. We recommend you tomake sure that your input and output are properly buffered in order to make the most of
the few seconds of execution time that we give you.
7/28/2019 All Just a Dream
3/15
Output
For each scenario in the input, output a line as follows:
Yes if the given scenario is consistent with what has happened so far.
r Just A Dream if the given scenario would be consistent with what hashappened so far, provided a D r line had occurred just before the scenario. If
there are many possible values ofr, choose the smallest value. Note that youshould not consider this hypothetical D r line to have occurred (as illustrated by
sample input 2 below).
Plot Error otherwise.
Sample Input 1 Sample Output 110E business_as_usual
E bobby_diesS 1 bobby_died
E stuff_happensE jr_does_bad_things
S 2 !bobby_dies business_as_usualE it_goes_on_and_on
D 4S 1 !bobby_dies
S 2 !bobby_dies it_goes_on_and_on
Plot Error3 Just A Dream
Yes
Plot Error
Sample Input 2 Sample Output 211
S 1 !somethingE one
E twoE three
E fourE five
S 3 three !four oneD 1
S 3 three !four one
D 1
S 3 three !four one
Yes
2 Just A Dream1 Just A Dream
Yes
7/28/2019 All Just a Dream
4/15
Wheel Game
Problem id: wheelgame
Time limit: 1 secondsMemory limit: 2048 MB
Its yet another rainy day in 1959, there are no video games, and you are stuck indoors
playing a game with a friend. The game is played using an even number2n of sticks,laid out on a table to form a wheel with n spokes as shown in the figure below.
You and your friend take turns removing sticks (you always start, since you are you). The
rules are simple: each turn, the current player selects one of the remaining sticks. She
then removes this stick and all sticks touching the selected stick. This goes on until there
are no sticks left, and the player who removed the last stick is declared the winner.
(a) A wheel with 5 spokes
7/28/2019 All Just a Dream
5/15
(b) What remains after the grey stick is selected
Figure 1: A possible initial move in the wheel game
After a while, this gets boring, and you start fantasizing about what the world will be like
in the 21st century: no doubt there will be robots to play stick games with instead of
plain old friends. Oh what jolly fun it would be! But what if the robots are super smart?Then you would never be able to win. That wouldnt be very fun.
Write a program which, given the value ofn, determines whether you would have anypossibility of winning when playing against a robot, or whether you would lose no matter
what you do. Assume that the robot is clever enough to always play optimally, andunemotional enough that it would never intentionally lose just to make you feel better.
Input
The input consists of a single integern between 3 and 500000, inclusive. (You maycomplain that it is impossible to lay out that many sticks to form something resembling awheel, but recall that this took place in 1959 the times were different back then.)
Output
Output a single line, containing The robot is your friend if it is possible for you
to win, or Destroy the robot before it is too late if the robot would win no
matter how you play.
Sample Input 1 Sample Output 15 Destroy the robot before it is too late
Sample Input 2 Sample Output 2
7/28/2019 All Just a Dream
6/15
6 The robot is your friend
PlaylistProblem id: playlist
Time limit: 22 seconds
Memory limit: 2048 MB
Photo by Anonymous Account on flickrYou have been invited to host a famous radio show to tell your fascinating life story and
play some of your favorite songs. However, choosing which songs to play is turning out
to be very tricky; there are just way too many good songs and you only have enough timeto play a measly nine songs!
7/28/2019 All Just a Dream
7/15
In order to give the show a sense of continuity, you have decided that consecutive songs
you play should have some detail in common. For instance, if you start by playing
Bjrks song Pagan Poetry, you could continue with next playing matmos trackEnigma Machine for Alan Turing since matmos contributed to Bjrks Vespertine
album (on which Pagan Poetry appears). Continuing, you might play a part of
Prokofievs , as it was written in 1936, the same year as Alan Turingsseminal paper on undecidability of the Halting Problem, and so on. The ordering of the
songs is important, so just because you could play song X after song Y it will not
necessarily be the case that you can play song Y after song X. At the same time asachieving this sense of continuity, you also want the playlist to have a bit of variation, so
all nine songs must be by different artists.
You have narrowed things down to a bunch of your favorite songs, but finding a list of
nine songs with a common thread seems tricky. Maybe you could use your programmingskills to find a good playlist?
Input
The first line of input consists of an integern (9n100), the number of songs. Thenfollow n lines. Each line describes a song, starting with the name of the artist (as a stringof a-z of at most 15 characters), followed by an integert(1t40), the number ofsongs that can be played directly after this song. Then follows (on the same line) tdistinct integers s1,,st, each between 1 and n, giving the numbers of the songs thatcan be played after the current song. The songs are numbered from 1 to n, with songnumber1 being described on the first line, and so on.
OutputIf there is a playlist of nine songs satisfying the requirements, output a list of nineintegers giving the numbers of the songs (according to the same numbering as in the
input), in the order they should be played. Otherwise, output a single line containing the
word fail. If there is more than one valid playlist, any one of them will be accepted.
Sample Input 1 Sample Output 110
a 2 10 3
b 1 6
c 2 1 5d 1 9
e 1 4f 1 2
g 2 6 8
h 0
i 1 3j 1 7
5 4 9 3 1 10 7 6 2
Sample Input 2 Sample Output 210 fail
7/28/2019 All Just a Dream
8/15
a 2 10 3
a 1 6
c 2 1 5
d 1 9e 1 4
f 1 2g 2 6 8
h 0
i 1 3
j 1 7
Sample Input 3 Sample Output 310
a 2 10 3b 1 6
c 2 1 5d 1 9
e 1 9
f 1 2
g 2 6 8h 0
i 1 3j 1 7
fail
Square Pie
Problem id: squarepie
Time limit: 11 secondsMemory limit: 2048 MB
You are working on an OCR (Optical Character Recognition) application to convert
scanned images into text format. In addition to just being able to parse text, you plan to
have your software recognize graphs and transcribe them in a meaningful way. Havingalready handled histograms, bar graphs, scatter plots and regular pie charts, you have now
worked your way tosquare pie charts.
A square pie chart consists of a rectangle subdivided into regions by horizontal or vertical
lines. Just like a regular pie chart, the different regions represents how large fractions ofsomething (e.g., baked desserts) are taken up by various subcategories (e.g., pies,
cookies, etc). See the figure below for an example.
7/28/2019 All Just a Dream
9/15
Figure 1: A square pie chart. This is a drawing of the second example case.
The module you are working on will be given a set of horizontal and vertical linesegments forming a square pie chart, and should compute the sizes of the different
regions of the chart.
The set of line segments is guaranteed to have been constructed as described above. In
other words, four of them form a rectangle constituting the boundary of the square piechart, and then each remaining line segment divides one rectangle into two smaller ones.
Note that this means that the line segments do not intersect, except that the endpoints of
each line segment touches some other line segment. However, the order of the linesegments in the input is completely arbitrary and you can not assume that they are given
in the order they were drawn.
Input
The first line of input consists of a single integern (4n100000), the number oflines of the pie chart. Each of the following n lines consists of four integers x1,y1,x2,y2, indicating a line segment from (x1,y1) to (x2,y2). The line segment is eitherhorizontal (i.e.,x1x2 andy1=y2) or vertical (i.e.,x1=x2 andy1y2). Each
coordinate is at most 109 in absolute value.
Warning
This problem has somewhat large amounts of input and output. We recommend you tomake sure that your input and output are properly buffered in order to make the most of
the few seconds of execution time that we give you.
7/28/2019 All Just a Dream
10/15
Output
If there are m regions in the pie chart, the output should consist ofm lines, giving thesizes of the different regions (as fractions of the entire chart), in non-increasing order.
You do not need to worry about the precise formatting of the sizes (e.g., number of
decimals), but the absolute error of each size must be smaller than 109.
Sample Input 1 Sample Output 14
2 2 6 26 2 6 6
6 6 2 6
2 6 2 2
1
Sample Input 2 Sample Output 28
6 2 0 2
0 0 6 0
0 2 0 02 2 2 13 1 3 0
0 1 6 16 0 6 2
2 1 2 0
0.333333333333
0.25000.16666666670.16666666667
0.0833333333
Peer Streaming
Problem id: streamingTime limit: 12 seconds
Memory limit: 2048 MB
7/28/2019 All Just a Dream
11/15
Photo by Tanbir Ahmed via Wikimedia Commons
You are developing software to stream music to users over the Interwebs. In order toreduce network traffic for your servers, you plan to do this in a peer-to-peer way: a user
who has listened to a given song for a while longer than some other user will have parts
of the song that the second user needs and can send them to her directly.
It is now time to develop the logic to decide which users should send which data to whichother users. At a high level, the logic works as follows. Each second, the data available at
the different users listening to a song is examined. Based on this, the system decides what
data users should transmit, and to whom.
To be specific, suppose there are n users currently listening to the song. The ith users
playback is currently at thepith byte of the song, and has already received the firstbipi bytes of the song, and no other parts of the song. Furthermore, each user has abandwidth ui bounding how many bytes she can upload in total to other users during theone second interval. After one second, each users playback will be C bytes further, i.e.,the ith user will be at byte pi+C. Each user now has the first bi bytes of the song,where bi depends exactly on what data was received from other users during the second.Thus, after the one second interval, the buffer that the ith user has is bi(pi+C) bytes.During the one second interval, a user can only upload data that she had before the
7/28/2019 All Just a Dream
12/15
interval started (i.e., from the first bi bytes of the song). A user can send data to anynumber of other users, but in order to send a piece of data to several users it needs to besent to each user individually.
In order to minimize the risk for jitter, the system should make sure that each users
buffer is as large as possible. Specifically, the goal is to make sure that after the secondhas passed, the minimum buffer size bi(pi+C) is as large as possible. Note that it maybe the case that this value is negative, indicating that it is impossible to avoid that someuser runs out of buffer during the one second interval.
For simplicity, well assume that this takes place on the Interwebs of an alternate reality
where upload speeds are completely captured by the ui parameters (e.g., they do notdepend on where the data is being uploaded to), and there are no such things as packet
losses, slow ping times, or anything else that might make the idealized situation described
here unrealistic.
Input
The first line of input contains two integers n (1n50000) and C (1C109).Then follow n lines. The ith of these lines contains the three integers pi, bi, ui withmeanings as described above. You may assume that 0pibi109, and 0ui109.
Warning
This problem has somewhat large amounts of input. We recommend you to make sure
that your input is properly buffered in order to make the most of the few seconds of
execution time that we give you.
Output
Output a single line containing an integerB, the maximum possible smallest buffer sizeafter one second.
Sample Input 1 Sample Output 13 20
50 70 10100 110 4
150 190 16
5
Sample Input 2 Sample Output 24 100
0 50 1000 50 100
0 50 100
1000 1500 100
-17
7/28/2019 All Just a Dream
13/15
Cat Coat Colors
Problem id: catcoatTime limit: 1 seconds
Memory limit: 2048 MB
Photo by Pedro Ribeiro Simes (pedrosimoes7) on flickr
The color of a cat is primarily decided by three genes, coding for Black (Eumelanin), Red
(Phaeomelanin) and Dilution (Melanophilin). The cat genetics experts among the readerswill note that we are ignoring a wide range of genes, e.g., Tyrosinase and the white
masking gene we apologize in advance for the oversimplifications that are to ensue.
Black is usually written as B, Red as O, Dilution as D. In general, a cat has two copies of
each gene, one from each parent (except for the red gene which is sex-bound, well return
to that later). Each copy can be eitherdominant, which well denote using an upper case
letter, orrecessive, which well denote using a lower case letter. Thus for each gene thereare three possibilities: either both copies of the gene are dominant, both are recessive, orone is dominant and the other is recessive. When describing a cat well write this as a pair
of letters, with the second one possibly being a - to indicate a wildcard. For example,
bb indicates that the cat has two recessive black genes, and B- indicates that the cat
has a dominant black gene and that we dont care about whether the other one is
dominant or recessive.
7/28/2019 All Just a Dream
14/15
When a cat has no dominant red (O) gene, its coat will be a variation of black, according
to the following four combinations:
B-D-: Black B-dd: Blue
bbD-: Chocolate bbdd: Lilac
Now, red (O oro) is sex bound on the X chromosone. This means a male cat, or tom, only
has a single red gene, while a female has two. Red dominates black, meaning that a cat
having an O gene will always have red coloring. Like black, red is also affected by the
dilution gene. For male cats, we have the following two possible red colors (here, theblack genes have no effect on the coat color):
D-O: Red ddO: Cream
For female cats the situation gets a bit more complicated. If the female has two O genes
she will be be red, with variations depending on the dilution gene in exactly the same
way as for male red cats:
D-OO: Red ddOO: Cream
However, a female cat with the Oo combination will have a partially black, partially red,
coat. These cats are known as Torties (Tortoiseshells), and named after both their coat
colours, starting with the black. The four possible Tortie colorings are thus as follows:
B-D-Oo: Black-Red Tortie B-ddOo: Blue-Cream Tortie
bbD-Oo: Chocolate-Red Tortie bbddOo: Lilac-Cream Tortie
When a pair of cats have kittens, the offspring will get a random set of genes from theirparents according to the following simple process: for each gene, independendtly, one of
the copies is selected uniformly at random from the fathers two copies, and the other
copy is selected uniformly at random from the mothers two copies. For the red gene,
there is a 50% chance that the offspring will be female in which case it will get thefathers red gene (and one of the mothers red genes at random), and a 50% chance that
the offspring will be male in which case it will only get one of the mothers red genes (atrandom).
Write a program which, given the colors of two cats, computes the most likely color for
their offspring. For cats having a color where some genes do not affect the color, assume
that the corresponding genes are uniformly random (over the two choices
7/28/2019 All Just a Dream
15/15
dominant/recessive). For example, if a cat is red, you should assume that the possibilities
DD and Dd for the dilution gene are equally likely, and that the four possibilities BB,
Bb, bB and bb are equally likely for the black gene (but note that Bb and bB are
equivalent).
Input
The input consists of two lines. The first line gives the color of the female cat, and thesecond line gives the color of the male cat. Each color is spelled and capitalized exactly
as when it is listed above, and the color is valid (i.e., the male cat wont be a Tortie).
Output
Output a list of the possible color outcomes for the offspring of the two cats. Each line
should contain a color followed by a number0