Here is a big problemset:
http://acm.uva.es/problemset/. Some of these are really very easy, and some of them really tough. What I would really like would be problems with big numbers of solutions with different time complexity for example: obvious exponential solution, quite tough O(N^2) solution and very tough linear time solution. There are dozens of problems of this kind. What about judging: you can have for example 10 testing sets each one with different size of input...
(It's easy to distinguish between solutions with different complexity. for example for N=1000: O(N) will count about 1000 times faster than O(N^2).)
And for each test accomplished in timelimit (with correct result of course), solution will receive one point. There is problem what to do if some solution received equal number of points. You can order them by for example submission time or total execution time. Maybe not bad idea is to give for example two or more tasks at one contest. It will cause bigger scores spreading.
But of course these tasks could be also judged in the same way you judged previous..., but this solution I mentioned favorizes good solutions over hackers' solutions.
I would be glad if you take my oppinion into consideration... If you are interested, I can give you a piece of advice about it...