Something like this already exists: TopCoder. They are pretty well known and have a good reputation, so they will be hard to compete against. With that said, however, there are a lot of things that can be improved: (like what you hinted at) you can have each company submit their own problem and make it more open, etc. If you are going to run with this idea, good luck!