ACM ICPC World Finals 2012
If all plates had different sizes, the problem would be completely trivial: take all the plates, sort them in order (but keep track of which stack they came from). Then, the number of splits we have to do is the number of positions where we switch between stacks (in the sorted list of plates). The number of join operations is always #splits + #stacks − 1, so finding the number of splits is enough.
If there are ties, we get groups of plates that are of the same size, and we have to figure out in which order to put them so as to minimize the number of positions where we switch between stacks. This can be done with dynamic programming.