I have a list of names, say 100. Each name has a value and a score. I need to select from this list of names a sub list, of say 30, where the total value doesn't exceed a certain amount, and the total of the scores for that sub list is the highest possible out of all the possible combinations.

There are some more comlications to this, but I will start with that for the moment. I have thought of a combination of CSEs and using Solver, but I don't seem to be on the right track.

Any ideas?

Thanks

Andrew