Editorial for Baltic OI '10 P4 - Matching Bins
Submitting an official solution before solving the problem yourself is a bannable offence.
Let  be the input sequence of bins and 
 for 
. The 
 leftmost bins can be put into the next 
 bins in some order if and only if 
 and there exists a permutation 
 of the numbers 
, such that
The solution to the problem is the largest  satisfying condition (1). Assume that 
 is a solution and 
 is a permutation satisfying condition (1). Let
and
and
It is obvious that . Assume that 
 and 
. Then
Therefore we can modify the permutation  such that 
 and 
, and the modified 
 also satisfies condition (1). Let 
 be the number of bins of size 
 in the first 
 bins, and 
 be the number of bins of size 
 in the next 
 bins, that is
Define  and 
 and
Now we can state that the  leftmost bins can be put into the next 
 bins in some order if and only if condition (2) holds.
Values of  and 
 can be computed in 
 running time and then checking for the condition (2) takes 
 time. Therefore for a given value of 
 we can check whether 
 is a solution in 
 time. Moreover, if we already computed the values of 
 and 
 for a given 
 then for 
 we have to modify 
, 
, 
 and 
 only. As a consequence, we obtain an 
 worst case running time algorithm. The required memory is 
.
We can speed up a bit by recomputing only those  that might be changed by decreasing the value of 
.
Comments
What does "ii" and "jj" mean? it is just literally i * i and j * j? Sorry I'm not used to read solutions. Thanks