You could look at the American Computer Science League. It was a lot of fun when I was in it umpteen years ago and they have some sample problems online. They have different levels, including the all-stars which I believe is the one used for the national finals. They include problem solving, geometric, financial, graph etc. various problems to be solved by writing a program in a limited amount of time.