SO itself uses the following style for their close reasons:
Questions about general computing hardware and software are off-topic for Stack Overflow unless they directly involve tools used primarily for programming. You may be able to get help on Super User.
and:
Questions on professional server- or networking-related infrastructure administration are off-topic for Stack Overflow unless they directly involve programming or programming tools. You may be able to get help on Server Fault.
The "You may be able to get help..." message is nicely non-committal, as it should be for a boilerplate message — yes, you may be able to get an answer to your question on SO/SU/SF, if you describe your problem clearly in understandable English, provide a simple code example demonstrating the issue, and this time make sure that your question actually is on topic for the site you're asking it on. But there's no implied guarantee in there.
So I'd suggest adopting the same non-committal phrasing here, e.g. like this:
This site is for programming contests and challenges. General programming questions are off-topic here. You may be able to get help on Stack Overflow.
This phrasing avoids implying anything (positive or negative) about the question's general quality. Of course, it you really feel that a specific off-topic question is so awful (or so excellent) that it needs something less neutral, you can always copy-paste the text as a custom close reason, and tweak it as you like.