0% found this document useful (0 votes)
36 views2 pages

C E O I: Towers of Hanoi

The document describes a programming challenge involving the Towers of Hanoi problem. Competitors must write a program that solves the Towers of Hanoi problem for any number of disks up to 100,000, outputting the minimum number of moves modulo 1,000,000. The document provides details on the input and output formats and includes sample test data.

Uploaded by

deki20
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views2 pages

C E O I: Towers of Hanoi

The document describes a programming challenge involving the Towers of Hanoi problem. Competitors must write a program that solves the Towers of Hanoi problem for any number of disks up to 100,000, outputting the minimum number of moves modulo 1,000,000. The document provides details on the input and output formats and includes sample test data.

Uploaded by

deki20
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

C ENTRAL E UROPEAN O LYMPIAD IN I NFORMATICS

Munster,
Germany

July 5-12, 2003


Page 1 of 2

English

Input File:
hanoi.in
Output File: hanoi.out
Source Code: hanoi.pas/.c/.cpp

Day 1: hanoi
100 Points
Time Limit: 3 s
Memory Limit: 16 MB

Towers of Hanoi
Surely you have already come across the Towers of Hanoi problem: Wooden disks of different sizes
are stacked on three pegs, and initially, all disks are stacked on the same peg sorted by size, with the
largest disk at the bottom. The objective is to transfer the entire tower to one of the other pegs, moving
only one disk at a time and never putting a larger disk onto a smaller one.
According to an old myth, the monks at an ancient Tibetian monastery have been trying to solve
an especially large instance of this problem with 47 disks for thousands of years. Since this requires
at least 247 1 moves and the monks started out without a strategy, they messed it all up while still
following the rules. Now they would like to have the disks stacked up neatly on any arbitrary peg
using the minimum number of moves. But they all took a vow which forbids them to move the disks
contrary to the rules. They want to know on which peg they should best stack the disks, and the
minimum number of moves needed.
Write a program that solves this problem for the monks. Your program should also be able to
handle any number N (0 < N 100 000) of disks. The numbers involved in the computation can
become quite large. Because of that, the monks are only interested in the number of moves modulo
1 000 000.

Example
The following example can be solved in four moves.

C ENTRAL E UROPEAN O LYMPIAD IN I NFORMATICS


Munster,
Germany

July 5-12, 2003


Page 2 of 2

English

Day 1: hanoi

Input
The first line of the input file hanoi.in consists of the number N of disks. The second line consists
of three integers s1 , s2 , s3 with 0 s1 , s2 , s3 N and s1 +s2 +s3 = N , the number of disks on each
of the three pegs. Lines three to five each contain the sizes of the disks for one peg. More precisely:
The (i + 2)-th line of the input file consists of integer numbers mi,1 . . . mi,si with 1 mi,j N , the
sizes of the disks on peg i. The disks are given from bottom to top, thus mi,1 > mi,2 > . . . > mi,si .
Note that an empty stack is given by an empty line. The set of N disks have different sizes. All
numbers are separated by a single space.

Output
The first line of the output file hanoi.out consists of the number d {1, 2, 3} of the peg onto
which the disks can be stacked using the minimum number of moves. The second line consists of the
number M of required moves modulo 1 000 000.

Example
hanoi.in
7
2 1 4
2 1
3
7 6 5 4

hanoi.out
3
4

Test Data
Your program will be tested with 20 different inputs during grading. The following table consists of
the first lines of each input file, i.e. the number N of disks for each input.
Test Nr.
N

1
5

2
10

Test Nr.
N

13
30000

3
15

4
20

14
40000

5
50
15
50000

6
100

7
150

16
60000

8
200
17
70000

9
1000
18
80000

10
2000

11
3000

19
90000

12
4000

20
100000

You might also like