I just came across this post about the CCC Results, the Canadian Computing Competition. A tl;dr, is that due to AI cheating, they are not releasing the standings, thus affecting all participants.
On my experience, I also saw mass use of AI cheating in the Brazilian OI (OBI). The way our olympiad works is:
Three phases. You need a minimum score to go to the next phase, which is based on the number of competitors.
Top X users get a medal, and are invited to the IOI selection contest.
Contest is held online, with 2-3 hours on the first 2 phases and 5 hours on the last phase. We ask for each school to have at least one supervisor on class, but unfortunately that is not always held or the supervisors simply don't care.
You can submit many times and get your score in real time.
As on the first and second phase there are thousands of competitors, it was really hard to do cheating detection, and couldn't be done by the small team of volunteers working on the contest.
On the third and final phase, we did a through analysis of submissions and detect some AI submissions. One competitor that could have gotten a medal got disqualified for that, and others that stole spots on the final phase from honest players. We also went through the submissions of first and second phase after it all ended, and there were more AI correct solutions than on the final phase (the problems are also way simpler, meant for people who just started programming).
For me, that is very sad to see, and it will only grow if we don't take any serious measures. Checking manually is very limited and the plagiarism checks only extend to a certain point as well.
One thought I have in mind is to limit the number of submissions to each problem to $$$2$$$ submissions, the second of which is blind. From what I saw, the AI couldn't get most of the problems done on the first shot (that also helped us detect if someone was cheating). When I participated in OBI 5 years ago, there wasn't a submission system, so everything was blind. Though it sucked, it could be one way to do it...
Another thing that helps is to state the problem with some story, instead of a direct application. For example, one of the problems was a "mergesort", but had a story of lines going from one side to another and crossing. For some reason, the AI really struggled, and used multiple tries until getting it right (sometimes).
A third idea is to implement in the plagiarism checkers a check to look for non-conventional characters, like ≤ . There is no way someone typed that, so we could just ban this user I think. And yeah, the cheaters were lazy to not even delete this in many submissions.
Finally, the statements were created in a PDF that you cant copy the text. This is useless if someone knows how to screenshot and pass it to the AI.
The ideal scenario would be to have some proctoring, but that is very hard to do on scale. It is hard to make sure that all users would have a suitable system or would have the technical skills to set it up. For example, on ICPC-style contests we use a linux-based system that turns off all internet access, but it would be very hard to impose this on all schools.
What are your suggestions to avoid AI cheating? How are other countries managing it?