greedy water filling algorithm