Canadian Computing Olympiad: 2018 Day 1, Problem 2
Troy made the following problem (titled WA) for a programming contest:
There is a game with
levels numbered from to . There are two characters, both are initially at level . For , it costs coins to move a character from level to level . It is not allowed to move a character from level to level if . To win the game, every level (except level ) must be visited by exactly one character. What is the minimum number of coins needed to win?
JP is a contestant and submitted the following Python solution.
def Solve(N, A):
# A[i][j] is cost of moving from level i to level j
# N is the number of levels
x, y, sx, sy = 1, 1, 0, 0 # Initialize x and y to 1, sx and sy to 0
for i in range(2, N + 1): # loop from 2 to N
if sx + A[x][i] < sy + A[y][i]:
sx += A[x][i]
x = i
else:
sy += A[y][i]
y = i
return sx + sy
Troy is certain that JP's solution is wrong. Suppose for an input to WA, JP's solution returns
Input Specification
There is no input.
Output Specification
Print an input to WA in the following format:
On the first line, print one integer
Then print
If your output is not in the correct format, it will get an incorrect verdict on the sample test in the grader and score 0 points.
Otherwise, suppose that for your input, JP's solution returns
Sample Output
5
1 2 3 4
10 9 8
7 6
5
Explanation for Sample Output
The optimal way to win the game is for one character to visit level 2 and the other character to visit levels 3, 4 and 5. This costs
Comments