送给版上某位女id,希望她幸福# Piebridge - 鹊桥
h*u
1 楼
Given a pizza with 3n slices (e.g. 9, 12,...), repeatedly pick a slice (save
the size of this slice). When you do this, the slice on the left goes to
someone on the left, and the slice on the right goes to someone on the right
. Repeat this process until no slices are left. How can you write a program
to find a list of slices that has the maximum sum?
As an example, assume the pizza has been sliced as follow: 1, 2, 10, 3, 11,
4. You may select the third slice of pizza(i.e. 10). The second and fourth
slice will disappear, leaving a pizza with 1, 11, 4. You could then select
one of the slices, such as the second slice (i.e. 11) and the other two
would disappear. This would eat a total of 21, the maximum possible for this
example.
Detail explanation of above example:
your list is 1 2 10 3 11 4.
1) pick 10
2) 2,3 will be eliminated
3) your current list is: 1 11 4
4)pick 11
5) 1,4 will be eliminated
6) Done
So the sum is: 10+11=21
the size of this slice). When you do this, the slice on the left goes to
someone on the left, and the slice on the right goes to someone on the right
. Repeat this process until no slices are left. How can you write a program
to find a list of slices that has the maximum sum?
As an example, assume the pizza has been sliced as follow: 1, 2, 10, 3, 11,
4. You may select the third slice of pizza(i.e. 10). The second and fourth
slice will disappear, leaving a pizza with 1, 11, 4. You could then select
one of the slices, such as the second slice (i.e. 11) and the other two
would disappear. This would eat a total of 21, the maximum possible for this
example.
Detail explanation of above example:
your list is 1 2 10 3 11 4.
1) pick 10
2) 2,3 will be eliminated
3) your current list is: 1 11 4
4)pick 11
5) 1,4 will be eliminated
6) Done
So the sum is: 10+11=21