Hello.
After todays round, during system testing, our friend's account AhmetKaan has been disabled. AhmetKaan has been an honest participant on Codeforces for more than 7 years, never resorting to cheating even with the ups and downs of his long journey. I can personally attest to the fact that he is an honest competitor, and would never do such a thing. We believe there has been a mistake and we ask for help to recover the account. MikeMirzayanov Vladosiya
Edit:
Even though I have not much control over it, I am sorry for the complete mess this blog has turned into. Having to track all the updates and new arguments has become mentally extremely tiring for me and, I think, many of the people here. As I wasn’t actively commenting for the past few days, I have a lot of stuff to address.
When the account was first disabled, I checked his submission for problem F 365901157 (which was the hardest problem he solved) to see whether there was indeed anything suspicious about the code. I saw that there were indentation issues in the segment tree he wrote and I thought that this was likely the reason for his ban. I thought, and I still do, think this code wasn’t written by AI in any way. Only indentation errors the code seemed to have was in the segment tree, which was written in the exact way he always did. As it is mentioned a lot of times in the comments, he is a teacher, and he has given segment tree lessons to beginners so many times everyone knows how he exactly writes it. It would take a lot more time for him to make AI impersonate his segment tree rather than writing himself. Also, the segment tree contained a bug he later debugged in his submissions.
After checking the submission, I was convinced that this was the reason for the ban, and was almost certainly sure this was just a false flag, likely made by a bot rather than staff. Even though we tried to reach staff first by DM, we later decided to make a blog as it would make things faster.
I was the one who initially asked people to vouch, as I thought this ban was not much more than a result of minor indentation issues. The blog wasn’t supposed to be active for so long, and was just supposed to get attention from staff so they would fix the wrong flag.
However, the next day, when I checked the blog I saw that there were accusations made by staff about different submissions, which I also found very serious. I agree that I should have investigated submissions more thoroughly, making sure there was nothing wrong, or if there were something wrong, questioned AhmetKaan about them before posting this blog. I accept my incompetence in this matter.
Even though many of my friends in comments will get angry to me for this, I believe that people vouching for AhmetKaan, telling he has been a long time member of the community, or in any way providing these kinds of statements no longer help their cause, as the ban wasn’t just a simple trust issue or just a false flag that had to be fixed. This was a ban made by staff after investigation, and to appeal, we need a defence and counter-arguments rather than trust-based statements. I don’t think we did a great job at creating a solid defense. I also don’t think that the arguments provided by AhmetKaan were exhaustive nor written impartial enough to address every possible concern for an objective review. Given how emotionally frustrated he might be against an unfair verdict, I don’t think we can judge him. But I don’t think that we should also act like there’s no room left for suspicion and try to force a positive verdict against the final decision.
If you care to further read defending arguments, this comment was recently posted.
Even though there are some threads that discuss the situation, evaluate the accusations and the defence, provide further analysis of the submissions; most of the threads have been stacking up to just provide a nothing burger. People vouching, people who criticize vouchers, people who are just here to ragebait, people who fall for ragebait, and people outright trolling. For the people who are actually trying to help, whether they believe AhmetKaan is legit or not: please don’t post any further comments you believe contributes nothing to the conversation. It is starting to just get very tiring. At this point, it isn’t even easy to reach and find comments which are actively arguing about the situation in very important ways because of the pile that useless comments have become.
On the other hand, I want to thank everyone who was constructive, even the people who made accusations, though we don’t share the same opinion.
I hope this situation ends in a way that is satisfying for all. Even if the account stays disabled, it would at least be relieving to know that we gave AhmetKaan the best coverage he could get for his defence. However, if the account stays disabled just because of how poorly this situation was handled by us, it is going to be really heartbreaking.
Also, destructive_criticism and lul proofread this final edit, and wanted it to be known that they support me, my final stance and opinions on the matter.










He is a long standing figure in Turkish OI and I can vouch for him.
I can vouch for him as well.
He is a mentor to many of active Turkish olympiad members. I can vouch for him as well.
I also had the honor of being mentored by him. I can vouch for him as well.
His performance is well deserved, I can also vouch for him.
(AhmetKaan orz)
I also can vouch for him.
I also vouch for him. He is one of the most experienced problem solvers I know, who has been in the field for 6+ years still counting and who has been to several international competitions both online and onsite over the years (APIO, EJOI, heck even an onsite contest in Iran a few months ago)
I also can vouch for him.
As an author I'm not personally in control of DQ'ing, but I'll make sure that whoever needs to will take a second look at this case. In the meantime, if they end up being legit — we deeply apologize for this issue.
AhmetKaan is a key figure in Turkish OI, and he's been active in the community for more than 7 years. There must be a mistake. Please reconsider his case one more time.
https://mirror.codeforces.com/blog/entry/146672 How does one even ban this legend?
IDK
Maybe because he switched D -> E1 -> D -> E2 -> D rapidly?
Switching problems mid contest is a valid strat.
Please look at the timestamp carefully!
Because it's been his strat since at least this september(We were in the same room during contests in late september and after contests he would always talk about how his strat makes things better)
The strat is whenever he sees a roadblock in a problem, he switches to next problem and tries to solve it, and in the meantime hopefully the break makes him unstuck on the current problem.
I know he is admirable person, I just want to point out probable cause of why He is banned in previous contest. Maybe not accurate but based on timestamp it "feels" like there are two persons working on same account. I won't be able to switch and submit three problems that rapidly x)
Knowing his strat, he probably had the codes of E and D open at the same time, and he probably did work on E too between 23:08-23:20 on your timestamps. I know it looks suspicious, but that's how he works. I guess that's what you develop for solving way too much OI problems with a lot of subtasks.
It's a normal strategy in OI competitions, but IMO not the best in Codeforces and ICPC style ones. But, still, knowing that he is someone who solves and participates in a lot of OI competitions, it seems normal. Usually, you can't always be working on the same problem. You always gotta think of different problems at the same time. In this case, maybe they thought E1, E2, and D were all solvable, so they tried solving multiple at once. Not proof that they did or did not cheat, but saying it is possible.
He is an awesome mentor in Turkish OI community and has supported so many students for years. He is the one who taught us about honesty and ethics in competitions and I can vouch for him too.
Please save our hero!
He has been a huge inspiration to me and many others, I can also vouch for him.
HOW COdeforces decides to ban someone ... ? not Talking about AhmetKaan but it can be easy to detect a Dumb Cheater but if a person with good basic understanding of CP, Cheats / Uses A_I then it is nearly impossible to detect cheating because then only thing you need is logic or KeyIdea to Solve a Problem which can be easily provided By a LLM then the Only part that is left is Code / Implemetation how would someone know....
I believe it’s not a mistake. I checked all of his submissions in yesterday’s contest before disabling. You can do the same, and I hope you will see what’s wrong.
I’m surprised that when actualtsg already pointed out that something was wrong, you guys only downvoted, said “it’s a strat” and didn’t bother to open the submissions.
I find nothing wrong.
I believe that too! Thank you very much for clarifying <3
I checked submissions one by one, all have same code characteristics, template, similar style variable naming, and similar debug prints. What is your claim about the contents of the submissions that you are absolutely sure you should ban a 7 year old account? Those series of submissions are in the span of 40 minutes, and I can argue that an experienced competitive programmer even can write 50-100 lines of different code within those intervals. Like codes aren't even long...
Like he is my friend and I trust him about this, but even if I didn't, I don't think there is remotely enough evidence to prove he is a cheater.
I checked the submissions and found nothing wrong. Can you elaborate on what you found.
I think diff here 365891594, 365892799 is interesting (not the size of it, I'm telling you to click compare in both and check the details closely). I don't beleive you can't see AI traits.
I also checked his submissions from round 1082. Why does tabulations look so weird? 364083892, 364093865 almost as if he wrote the functions in different editor which makes no sence. You can see these strange changes starting from his AC on B. Formatting often becomes off when you use AI.
Edit: sorry for wrong reply, I was replying to: FatihCihan
Also look at the diff between 365888811 vs 365891594:
if(cin>>t)?not valid. I sometimes write unformatted code (to write fast) and if I get a bug, I start formatting the code to find it more easily. Removing unneccessary things (to something which you already know about) make you feel comfortable that bug isn't in this part.
But I saw all your submission follow flake8 rules, can you give me one example of your submission that is un-formated or messy?
Also you don't have comment about why he put
if(cin>>t)?Was the scenario too difficult to imagine that you need proof of that? Also, By bug I don't necessarily mean a WA, it could be: I tested on TC 1 and just formatted my code and then debug.
As for the cin >> t part, I don't know maybe he want to shorten the code.
Also, I don't have an obligation to defend him (though you seems to have an obligation to attack him), I am just saying (for the sake of arguement) that this is not good enough as a proof or anything since this can happen normally.
Edit : If the line if(cin>>t) is used by AI commonly, then perhaps it's suspicious.
Sorry but to be honest yes, because it's very uncommon, I never seen once before, If you look at my personal code you can see I don't care about formatting my code (to some degree), and when I'm stuck and got WA, I never change formatting of my code even once (you can give me counterexample if you found it)
Thanks for sharing your view about
if(cin>>t)case, IMO yes that edit is very unnecessary, like checking if input file exist.No, I'm not attacking him, you can see my other comment that I actually pity him :'( I'm actually defending Vladosiya's decision by giving more evidence.
I agree this is not good enough as a proof, but I disagree that this can happen normally
perhaps, as some other comments also signal, OI participants seem to have more in common (Or maybe my style is more like him). For me, his actions are quite normal.
Even his variable changes from m1 to min1 (I saw in another comment) are completely normal to me. I do it to simplify my code and understand better while debugging (but sorry I can't give an example, since I don't do this quite often).
writing if(cin>>t) is complete game over, no redemption from this.
AhmetKaan tried to reach you from dm's, but his messages were not read (you probably get a lot of appeals, so it's understandable). He will deliver his explanation for these from discord.
Vladosiya orz
no job with the discussion just came here to orz Vladosiya for the love of the game , orz
so real
Can you disable me too plz?
I think he is not an Indian, so he is not a cheater.
Why so many downvotes :(((
I thought majority of honest CF users are anti-India :(((
I think that's stereotypical and racist.
I agree
I can also vouch for him. He was THE teacher for me over the span of years of oi camps. He was there whenever a student needed help. He was the first one to point out whenever a dishonesty happened in camps. I hereby can clarify that there is zero percent chance that he cheated.
Other than his personality -which anyone who knows him would agree-, he clearly tries to explain himself and states that why your cheating assumptions arised. It is far from proven and he must be innocent until proven guilty. This is really unfair from an objective point of view
Since there has been a lot of discussion I have decided to share Ahmet Kaan's defence.
Thanks for making it public, IMO his defense should be seen by everyone, and I'll admit he answered almost* all my suspicion, and yeah I feel his pain too. Good luck with the appeal :)
*To be honest his unusual coding environment and interaction behavior made me felt a bit sus remaining, but small enough to be ignored x)
In reality, each strange in the code by itself doesnt prove anything. Yes, formatting can change when switching editors. It is also possible to switch between tasks, and so on. However, when there are this many coincidences, it becomes too much. Maybe it was just his unluckiest day, but there are too many red flags for cheating.
I also still dont believe these timings for the tasks. How did he manage to write E2 in such a short time while supposedly "debugging, stress-testing, and switching editors"? Why did he suddenly decide to change the variable names in the code for D (check pic)? These and many other questions he will still have to answer.
Wow, you're right! @new_user_1234 can you explain this?
he also got 1 skipped 4 years ago: https://mirror.codeforces.com/submissions/AhmetKaan/contest/1720 and I think he cheated, because later he solved A, and I noticed that cheaters are commonly switching between problems without finishing them, maybe because they are trying to get gpt free version to solve the problem.
And btw, did you email mike by now? To remove that limit you wanted to remove?
Yeah I believe he is cheated too, but I also feel pity about him being such respected by many people in his country but still banned :(
No, not at that level yet, but I do contact some of the admins reporting few cheaters with evidence to gain trust ;)
I noticed, that admins filter out messages like 'this is a cheater', probably because there would have been report option instead, but I might be wrong.
Yes, I can confirm there is such filter and some other forbidden keyword, DM will never be read if filtered. So instead I do some research about them and luckily I'm able to communicate via e-mail instead.
I mean, you cannot email the admin if you are talking about cheater, I tried but then the message just doesn't send
Maybe you send e-mail to different admin? I have no such problems.
Anyway I can't give you more detailed info than this, if you want to report cheater too the best you can do is put comment on this blog: https://mirror.codeforces.com/blog/entry/151540 (Believe it or not this blog is created because of my suggestion btw)
GPT wasn't able to solve anything 4 years ago.
I was referring to his last contest, the skipped contest was just an evidence of his past cheating
While I understand that people can definitely work on multiple problems at once, which is usually what happens during OI competitions (or competitions in a similar form, since I've participated in them myself), you're right, there are too many small changes that wouldn't really make sense if they were fixing a bug. Sure, you might fix a typo or two, but not to this extent. You're also right about how he was able to write E2 that quickly, with apparently debugging, stress-testing, etc.
Although I understand the possible strategy they used, I'm still skeptical and believe they did, in fact, cheat.
I am not akaan, and will make no statements on his behalf. However, note how he only claimed to stress test D. His code for E2 isn't very long either, and I don't think it would take most people longer than 5 minutes to code.
I don't think that a few suspicious submissions is enough to justify permanently banning a 7 year OI legend. Being lucky enough to personally know Ahmet Kaan myself and after examining his submissons I cannot see anything suspicious enough to overwrite his 7 years of legitimate participation.
You honestly do not see anything suspicious with him adding the useless line of code "if (cin >> t)" that I have only seen in other AI submissions? What is a piece of evidence that would make you suspicious?
Note that I do not know if he cheated with AI or not. But it is impossible for you to have the certainty you have.
He said he was stress testing. Also while AI loves that kind of use case of cin is pretty popular
Please, bring him back!
AhmetKaan is an incredibly important figure in the Turkish Olympiad community and he always stood against cheating. He has been part of the Olympiad community for 7+ years and I can personally vouch for his integrity and character.
Seeing that a 7 year old account gets deleted for just a few minor "sus" patterns that could have resulted from fair behaviour shows just how little compassion and humility remains within people who recklessly accuse others of cheating without sufficient evidence despite tens of high rated people and an entire nation's worth of community openly defending the person in question. I understand that cheating has become a major problem affecting nearly every contest nowadays but I also believe it is NOT FAIR and INCONSIDERATE of the admins banning a GRANDMASTER no questions asked. CodeForces used to strike me as a platform of helpful collaboration and sharing, where people were allowed to be proud of their achievements. I know AhmetKaan like a brother and seeing his efforts and motivation CRUSHED by having his account deleted right after he has possibly achieved the greatest feat of his CP career after YEARS of work sucks. I am aware that I am writing this comment full of criticism that is not necessarily constructive, but I have little to do with this platform and couldn't care less abt the ratings, and I couldn't stand that a figure of such great inspiration gets treated so disrespectfully so I decided to write it anyways.
I genuinely hope that what is just is done ASAP.
AhmetKaan OTZ
I understand the claims made by admins to ban AhmetKaan due to suspicions over AI usage. But, as an OI competitor with similar strategies, it's impossible to oversee the realistic part of this behaviour. Switching between two tasks continually and wrongfully sending wrong code it, or to the wrong problem is pretty much normal under contest stress. And, you know, if you are having an unexceptional performance that day, you, in fact get more stressed and your hands tangle around each other, basically.
Nowadays, it's very much possible to accuse any master of AI usage when they are performing 2700~, and when AhmetKaan made multiple suspicous code behaviour, it might've stood out. AI's are basically capable of solving problems; so, if somebody is stuck at some point in the contest, and asked the AI, it could've basically boosted the user a lot, and nobody would've known. In the past months, I used AI to translate some JOI editorials and explain, or prove some statements; and, as everyone knows, AI's are getting better and capable.
I see that if 10 people from a certain country is defending the same person might also raise some allegations. But, you see, these are in the top-20 people, competing in IOI and other regional olympiads, or long-served mentors in the community. Any form of cheating or gaining dishonest advantage is discouraged in our community as well, if you are questioning. AhmetKaan has been serving as a strong mentor in our community for the past 4 years. I don't understand how long this discussion had become. I strongly object to this decision.
I can vouch for AhmetKaan.
I seen many cheaters, and I can say that 'served as a mentor' or '7 year old account', proves nothing, I remember a 13 year old account suddenly got exposed getting to master in 1 month, and if the person cheated, then they would likely not reveal knowing it would harm there reputation a lot, so I don't think that, 'served as a mentor for 4 years' is a valid reason for being 100% a legit person. And also about the fact that he would have busted if he cheated, is not true, it might be for newbie-pupil, but then someone at master level cheats, it means they have carefully went to that state, those it's not an evidence either.
I wonder when codeforces will ban newly created negative contribution accounts or trolls from commenting lol. If you want to share your opinion please use your real account.
Why so angry? Like I just expressed my personal view.
This is very unfair! If people with negative contribution is banned that means someone can ban the other unfairly by just downvoting! You don't know how I get negative contribution by mistake :(
It is clear that SwastikPandey_cheater is an alt. He is saying that you should use your real account if you are making such bold accusations.
I just reacting with first statement, not the second. Why you are so defensive?
Also his real account fresh_tangerines is banned because of cheat. And it's currently his only account on codeforces. Also multi-accounting is common here, even your superhero made 2nd account to appeal :p
actually I'm not that person, but I do know his account is X-detector and he also got new id after getting exposed.
Also, it's funny how some of these Turkish defenders people are getting offended from every single little comment saying that they were cheating, and many questions haven't been answered yet
ragebait fr
Yeah look at the up/down votes I and the Turkish receive about this case before this blog is posted:
I want helping to guide them by mentioning admin and how they appeal nicely but they just brutally downvote me and selfishly upvote themself! Even the panic is funny, and honestly I'm a bit mad but I can control my anger now :)
People just upvote what they support and downvote what they don't in controversial topics. It is just how it is. And stop imagining all these "brutal downvotes" , "selfish upvotes" or the "panic". Your wording is simply destructive. We are just trying to defend someone who we know closely.
To be honest, I don't think angry messages were sent in general; I didn't feel that way about every message I read. My friends asked their questions very politely, and I think you answered politely as well.
However, it angered me that some pathetic, unrated people were stupid enough to write something like, "It's so funny how Turkish users get offended by everything that's written.". If you're going to make generalizations, please know your limits. Do we make ridiculous generalizations?
Your responses are stupid, and you didn't help anyone (so either you didn't try or you failed). I'm not Turkish and don't have a side in this debate, but I downvoted some of your comments because they are dumb. Am I a part of the "panic"?
Alright, Sorry I apologize, I know I'm wrong but I didn't know exactly get where I'm wrong, thank you for pointing it up :)
@FatihCihan: "My wording is simply destructive", yeah I'm a bit mad and make bad word, I'm sorry
@ItsNotMeItsYou: "I made stupid generalization", Sorry, I want to complain about yesterday downvotes but I don't have chance to speak until now, but Inappropriate place, so sorry :(
@Um_nik: I want to help, but the reaction they give and ignoring my question make me unable to help. And btw can you please quote some of my "dumb" comment that you downvote (and if possible, the reason why you think is dumb) so I can learn to avoid it next time? Maybe I'm good at code and math, but my social skill is dumb :( help me!
I mean, that all them are coming from same country means they are all friends, and because of this, some normal comments are getting downvotes and all these 'friends' comments are getting upvotes, I'm just saying that these people are too emotional, just like the person on the top of this chain, if he was truly just trying to say that I need to use my main id, then he would not go to my profile page and see my contribution, and other things
I think it’s funny that you get offended by his words when he was clearly referring to people who contribute nothing except trolling. I’m not saying you’re a complete troll. You sometimes put some thought into your messages to argue that you aren’t. But the vast majority of your comments, along with your -100 contribution, speak for themselves.
Thank you for sharing your point of view! You are missing some point:
I complaining about A, they reacting with B that has nothing to do with A
I always want to be nice but evil people keep downvoting me for no reason
I'm tired to elaborate, if you are smart enough and really have candidate master brain I know you can understand what I mean.
I am smart enough to know that the argument "If you are smart enough you can understand me" is simply bs.
You filtered out the 7 year mentoring part for yourself. Yes, it is not enogh; if we just said that. I -as an old olympiadist- logged in after quite a long time and wrote a statement for the sake of this unfairness. We all did. Because he is not a random 7 yeqr old mentor. I personally seen him FIGHTING against infairness for any of us. He was the one first pointing out anything before any of us. He has that kind of an honest personality and we will all be supporting him in this matter.
I want to state something because no one said anything regarding to that:
We are this sure that akaan did not cheat because we know akaan. How he writes code. Hes been doing this in front of hundreds of students every camp. And to be honest, he is not the best nor the cleanest code writer. He suffered a lot from that so I can relate to him changing variables, cleaning code etc mid contest. I can even show you guys how he was writing segment trees when I was his student (spoiler: it sucks (dont tell him that))
So to summarize. Please appeal him. We know him and we all vocuh for him. We can see from your standpoint it might be bannable but we are all here and telling again and again that he is not cheating. He is the most deserved gm Ive ever known in my life.
If he really doesn’t cheat then why did he already have 2 skipped contests before the ban?? https://cfcheatdetector.netlify.app/
Idk man but these contests are way before even I started codeforces. There is no ai involved for sure. Also one of these contests are unrated. Though I dont know how he got skipped, he has WAY better skipped to contest ratio than some of my friends. Some of those friends got skipped because their code was pretty similar to some rqndom person just bychance.
The problem is codeforces banners does not care about your background, contest amounts, nor your skills. If you keep contesting there is higher and higher chance of you getting banned randomly, and that is unfair, no?
I wanna say that we, people vouching for him, arent doing this because "oh I know him he is a nice person". We know him. We spend a lot of time in the training camps and other places we meet. You would know he is not cheating too if you listened to all the things he said and if you knew what kind of person he is. It may feel less significant the more comments you see about people vouching for him but you should realise that they actually mean it when they say that and its not just another person saying the same thing.
Despite me knowing AhmetKaan for only 8 months, I'm somewhat familiar with his code organization, contest tactics and his way of thinking. I've read most of the reasons of ban, and given reasons exactly match the way he thinks and writes his submissions.
He's been mentoring so many Turkish olympians and competitive programmers for years, so many people are also familiar with him. I don't think that he will ever cheat in a Codeforces contest. If you aren't satisfied with the appeals, the people who are with him should show how a trusted person he is in competitive programming community. How come a person trusted like him would ever cheat? Please don't disregard the people in the comments and remove the ban in advance.
I'll bite the bullet.
I think we, as the Turkish OI community, are setting up a horrible example for similar cases in the future by acting sentimental. It's not hard to imagine how frustrating it is for coordinators and organizers (or whatever they are called) to distinguish experienced users that can utilize AI discreetly from false positives. It will probably only get much worse as open models improve and peer pressure without actual analysis will only make the situation more frustrating for people in charge.
Maybe it is not that important, and they'll get used to ignoring such cases, but it's still really disappointing to see that people (who I love) act without actually putting the effort into objectively and empathetically analyzing the situation. Ahmet probably put more hours than anyone in the Turkish community into competitive programming and much more into training, mentoring, and helping the students. His influence and efforts are undeniable. Yet, these shouldn't overshadow some past actions people choose to withhold here: He has a bazillion alt accounts and has previously participated non-individually in contests (actually once with me and like 6 others through tr_ioi_team; this account was supposed to be banned after the first contest anyway, and I've created a blog asking for it to be banned, yet the blog was deleted instead of the account itself, whatever).
But I don't think these imply in any way that he would resort to AI for success nor that he's a bad person nor invalidate the fact that he helped hundreds of students. Just like his positive influence or character doesn't prove that he actually cares about participating honestly in the contests. I think that we shouldn't make our discrepancy between those two possible realities the coordinators' or anybody else's problem by creating such connections, and make our objections through solid arguments instead of blindly vouching and creating unwanted pressure.
Just like his positive influence or character doesn't prove that he actually cares about participating honestly in the contestsI think you jumped to a conclusion there, I would say an entire community that has known him for many years saying he isn't one to do such things, especially when evidence is so sparse should give him at least some amount of credibility.
I agree that it isn't easy for admins to distinguish cheaters from real talent. But I do not agree that this means they shouldn't even try. It's like saying "Damn there are so many cheaters lets either ban everyone who performs above their expected performance by a large margin or let's not do anything at all". We are people and I think it is quite rational to take initiatives and examine extreme cases like this once in a while. When was the last time this platform has seen so many high rated people (2800 rated GM's and IOI gold winners) and an entire community vouching for one person's innocence? Not this many people would advocate his appeal if they didn't really believe he was legit.
As for the "setting a bad example" part, of course it is normal for people to react with sentiment after seeing such a terrible event. Not everything is best solved with a rigid algorithm, I believe sometimes it is best for people to express their opinions (even ones filled with sentiment) and bring new perspectives into play.
An old Viking stands on a cliff above a fjord and says to himself: “I built this longhouse with my own hands. But do they call me Olaf the Builder? No.” “I led warriors into battle and defeated our enemies. But do they call me Olaf the Brave? No.” “I sailed the seas and discovered new lands. But do they call me Olaf the Explorer? No.” “But you f*ck one sheep…”
I'll just add in what the turkish variable names and comments in the D code means here for further reference.
typedef lo: (lo)ng long
n, m, k, t: These are standard variable names
li: short for limit
inf: infinity (just a large number)
min_inf: minus infinity (small number)
dp[li]: dp for dynamic programming
mn: this is short for minimum
der[li]: (der)inlik means depth in Turkish
v[li]: v for (v)ector or maybe (v)ertices, this is the adjacency list in the code
dfs: depth first search
node: node/vertice
ata: ata means ancestor or parent in Turkish
dep: (dep)th
cocuk_sayisi: "çocuk" means child and "sayısı" means count in Turkish, together it is child count
go: the node we (go) to
mn2: The second minimum / the second smallest number
mn1: The first minimum / the smallest number
at: "at-" means to throw in Turkish, in this case it is used as mn1 because mn1 value is thrown away
kat: "kat-" means to add or put in Turkish, in this case it is used as mn2 because mn2 is added into the dp value.
Hello!: Hello
dört böler altı artı iki ama ne böler altı ne böler iki: A poem written by a legendarary math olympiad teacher
Başarı, Boş Duranın Hakkı Değil... Koşturanın Hakkıdır. Hakan? Ne yapayım, elimden gelen bu :(: Success comes from working hard
S'il vous plait: As Karim2 said this means Please in French.
ABC: just ABC
ABC MATEMATIK: A math competition in Türkiye
:skull: Skull emoji
As a final note I think that there is enough plausible deniability for him not be banned. The speed of the code writing is not too fast. Switching between problems is explained by not wanting to wait for the submission to be judged and just working on a different problem until the submission result comes in. The variable names are normal in Turkish. Changing variable names are explained by trying to see if there is something logically wrong by giving them more objective names (And only one variable name was changed: mn1 and mn2). Also this person has solved thousands of problems just in CodeForces.
With respect, terracottalite
"S'il vous plait" is french and it means "Please"
Thanks I'll fix.
I have been involved in competitive programming for about seven years, and honestly it never crossed my mind that I could face a situation like this. Unfortunately, because of that, I do not have any direct evidence to prove that I did not cheat (like a screencast) — and in reality, almost no participant can truly prove that they did not cheat. However, I am completely at peace with myself because I know that I competed honestly.
That said, I can still mention a few circumstances that may be relevant. During second from last contest I was on a train while returning from a competition, and an olympiad friend of mine was sitting next to me. During the last contest, my roommate — who is a law student — was also in the room with me. Therefore, I was not alone during those contests, and there are people who could confirm this if needed.
Of course, I understand that witness statements may not necessarily be considered definitive proof. Still, both of these people are known as honest individuals in our environment. Beyond mentioning these circumstances, unfortunately there is not much more I can do to demonstrate my innocence.
I would also like to mention that the contest itself was quite stressful and exciting for me. During contests I sometimes make quick decisions, switch between problems, or modify parts of my code rapidly while debugging. Because of the time pressure and the intensity of the contest environment, some of my actions in the code or submission history may appear unusual when viewed afterward. However, they were simply the result of trying different approaches under contest pressure.
Being accused in this way has been very upsetting for me. What affects me the most is not the platform decision itself, but the feeling of being treated as if I had cheated, despite knowing that I participated fairly.
I would like to state once again that I competed in the contest honestly and fairly. I truly hope that this situation can be reconsidered and that this misunderstanding can be resolved.
At the same time, this situation has been emotionally difficult for me, and I would prefer not to dwell on it any further. I hope my explanation is helpful, and I respectfully leave the final evaluation to you.
Finally, I would like to thank everyone who believed in me and trusted that I would never do something like this, even without needing to ask me. "AhmetKaan"
you is cheater, and it is proven, but you can't prove you are not, thus no action needed
too brave words from a certified cheater...
at least the fact that his votes went from +36 to +24 proves that the votes are coming from people whom he knows
AhmetKaan dont take this guy seriously he is just some another weirdo troll. Cant believe codeforces allows people to just open new accounts and pollute the community like this.
Trolls need to have fun too, let them be
I can vouch for him
I don't really know much about why he got disabled, but I can vouch for him too. He has been a motivation for many of us.
dang this was that guy from the post
when will u get disabled
He won't, I can vouch for him
I meant physically
He clearly cheated. You guys really think "vouching" for him does anything to the evidence? You are just destroying your own credibility.
But he didnt? Literally. Weird coding style != ai. He wouldnt even get any advantage over using ai that way anyways? He just submitted in a weird pattern and fixed his code like a human being. Hes been in this field for years and he is above capable for that.
We all are already credible people that are this sure in this matter, and we dont care about our own credibilty like a selfish person when an injustice like this happens.
I like to think that given the controversial situation our voice will matter. In the end he is our beloved friend and we all strongly believe he didnt cheat. I dont think anyone here really cares about "credibility" , we are just standing by our friend
I made a track about Akaan also i will stay anonymous so dont ask who i am: In the memory of Akaan
Come on man, if you're going to take up a similar occupation to me, at least do it well!
I checked the data from this 2015 contest: https://mirror.codeforces.com/blog/entry/22333. I am not allowed to crawl, I had to search within the available data. It's biased, but it’s the only data I have.
Out of 273,705 submissions, 131 used the if(cin >> t) syntax. For a modern contest with 43k submissions, that translates to about 20 total submissions, meaning maybe only 4 or 5 unique people in the whole contest would use it?(math not may not math here sorry i am sleepy) It's rare, but it is a valid human coding style that existed long before AI. Using it is not "proof" of cheating. This shows people were using this style way before the chatgpt era, and why would an AI even suggest it if it wasn't already in its training data from humans?
Regarding the refactoring and turkish variables: People claim he used ai, but he was already using Turkish variables throughout. Why would an ai even give turkish variable names? I know you could technically prompt an ai to do that, but it is not likely at all. In every contest, if I get a WA, I personally rewrite parts of my code and change the style to make it more readable so I can go line-by-line to find the bug. It’s much more logical that a legit IM who is capable of rewriting code in 5 minutes and swapping problems when stuck is just using this exact strategy in his own style.
I respect Vladosiya, but this needs reconsideration. Even if you think the chances he cheated are high, there's a possibility he didn't. Banning someone because you are "70 or 80% or whatever percent sure" isn't fair. A final comment from an admin after a second look would help end this discussion.
People say only friends are defending him, of course dude, why would anyone else spend time investigating xd? Unless you are an admin, you only care if you actually know the person.
that is like the worst defence I ever seen.
how does it matter that some people may use if(cin >> t) syntax in 2015 to the discussion at allsurely there were some problems, back in the day, with cringe input format, with multiple testcase but without number of testcases, in that case if(cin>>t) syntax makes sense. The 20submission 4 or 5 unique people argument is hilarious, why are you pretending like it is a random process who is using if(cin>>t) in a given contest? Like, if one person is using this syntax, he is probably using it almost always, and if someone never uses it, why would he suddenly do? Better argument would be to show any past AhmetKaan submission with if(cin>>t) syntax, if it exists. If he used it in a past, that can be some kind of backup. And most importantly, he didnt properly explained, why he used it, "for stress-testing" is not an explanation (show exact stress-testing pipeline then, because I cant imagine a single one, where if(cin>>t) could be useful). Argument about turkish variables is also hilarious, you know, you can modify ai code yourself, right? Like if he would blatantly copy ai code, it would be x500 suspicious, and lead to insta-ban. Also funny how you use "legit IM" as an argument when trying to prove that he is legit.So idk what kind of reconsideration you want, evidence is clear as day, and if anything, he himself needs to provide more proper explanation to concrete questions asked.
i agree with you on the 2015 data, it is biased and doesn't prove much but i couldn't find more suitable crawled datasets to check and i can't crawl his past submissions he has like 100 pages of submissions, dont wanna ban my ip. i just find it ridiculous to use if(cin >> t) as a primary indicator of cheating.
about the variables: it's not just about a simple ctrl+d and replace. i don't think an ai can naturally place that rewritten part of code so flawlessly. he was already a master in 2021 which is why i said he is a legit im(i thought he was IM, but he was M most of the time).
I'm curious out of that 131
if(cin>>t)syntax, how many of them start using it after got WA or other non AC submission?i would have ideally matched the submission(status of each submission is given AC, WA etc) id's to users and then see what happened. but i can't fetch the metadata for some submissions from api, they are hidden, opening the submission on web also doesn't work. i dont know how to work around this.
btw i wonder how this guy crawled 270k submissions at that time, cf should have gone off under this load haha.
Problem | User | Stats
574B — Bear and Three Musketeers | nguyenhhien | AC:1
574E — Bear and Drawing | nguyenhhien | WA:3
577A — Multiplication Table | nguyenhhien | AC:1
577B — Modulo Sum | nguyenhhien, zyaad | AC:1, WA:6, TLE:3
577C — Vasya and Petya's Game | nguyenhhien | AC:1, RTE:2
577E — Points on Plane | nguyenhhien | AC:1, TLE:1
579A — Raising Bacteria | nguyenhhien | AC:1
579B — Finding Team Member | nguyenhhien | AC:1
579C — A Problem about Polyline | nguyenhhien | AC:1, WA:4
579D — "Or" Game | nguyenhhien, zyaad | AC:2, WA:5
579E — Weakness and Poorness | nguyenhhien | AC:1, TLE:1
579F — LCS Again | AbcFly, nguyenhhien | AC:4, RTE:1, CE:1
586A — Alena's Schedule | nguyenhhien | AC:1, WA:1
586B — Laurenty and Shop | nguyenhhien | AC:1
586C — Gennady the Dentist | sh19910711, nguyenhhien, rtheman | AC:3, WA:4
588A — Duff and Meat | hidden | AC:1
588B — Duff in Love | hidden | AC:1
588C — Duff and Weight Lifting | hidden | AC:1, WA:19, TLE:8, RTE:1
589A — Email Aliases | hidden | AC:1, WA:1
589B — Layer Cake | hidden | AC:1, TLE:1
589D — Boulevard | hidden | WA:3, RTE:16, MLE:2
589I — Lottery | hidden | AC:1
589J — Cleaner Robot | hidden | AC:1, WA:1
591A — Wizards' Duel | nguyenhhien | AC:1
591B — Rebranding | nguyenhhien | AC:1
591C — Median Smoothing | sh19910711, nguyenhhien | AC:1, WA:11, TLE:1, MLE:2
591D — Chip 'n Dale Rescue Rangers | sh19910711 | AC:1
591E — Three States | sh19910711 | WA:1, MLE:1
You're right, given the table column from the database (no user id), I think it really need to check the submission one by one
I salute your work into this, you are different than other "vouch" person, you really work with data, I respect you :)
Thank you very much for the info and the data, I think I will also try to analyze the data too.
https://www.kaggle.com/datasets/yeoyunsianggeremie/codeforces-code-dataset actually now i found this one, should be more applicable to our case. also this one https://github.com/kgautam01/CodeForces-Scraper/tree/main/COFO but the download link doesn't work.
Thanks but the data only contain accepted submission only so it can't answer my question.
Anyway I've found my answer on my own, there is no user that inconsistently use
if(cin>>t)on the data, there are only 5 users that usesif(cin>>t)and all of them is consistently using it.we are Ahmet Kaan
we carry the flame
we fight for the unban
we honor his name
regardless of this discussion i hope the codeforces to be more transparent and publish a list of banned users along with their flagged submissions. this handpicked dataset of ai-suspect code would be extremely valuable for safety researchers to study human vs machine patterns and build better open-source detection tools. beyond that publishing a massive public dataset of high-quality competitive programming submissions would be a goldmine for labs working on reasoning and problem-solving ai.
i am aware this has been discussed in multiple places multiple times already so what is the actual holdup? you guys complain about crawlers making the site unavailable but you could solve this by providing an official way to buy or access the data instead of having them hit your servers with brute force scripts. if the issue is a lack of capacity or dev time then just hire someone and monetize the dataset to cover the costs, man these ai companies are printing cash and would pay a lot for a clean high-quality dataset. even a donation-based model for access would work. or is the issue that the code belongs to the users and cannot be published for legal reasons? last week i heard my schools eduroam got ip banned for some time because some researcher was crawling and what do you expect when you dont provide an official channel? publishing it officially solves the traffic issue, prevents institutions from getting banned and makes the platform money at the same time.
This also very valuable for cheaters to study human vs machine pattern and build better evasion tools :v
Since people here argue that vouching has no meaning (even though I think many credible people vouching for a single individual should increase their credibility, but maybe that comes from a cultural difference), I prepared a full refutal, and I will try to answer any more questions if you have.
First of all, I will refer to submissions as time-x (example: 1952-D in UTC+3). And I will mostly argue about the changes in the problem D, since main arguments come from there. About the speed of E1 and E2, I think the explanation of switching problems applies here. If he was switching between problems consistently and without speed loss, D, E1, E2 are written in the span of an hour, which makes sense. There are other examples of him switching aggressively between problems, like Hello 2026 (and probably more, I haven’t looked that deep). I know that this example looks faster, but please keep in mind that his codes for E1 and E2 are really short, anyone who finds the solution can write them in a reasonably short time.
My main argument about D is that having 2 different editors open during the contest creates many anomalies within the code, and those anomalies are what is seen here. It is easier to argue that they are caused by the editor switch and harder to argue that they are caused by AI.
1.Variable Naming:
There are 3 different naming changes of variables if I noticed all.
2.Formatting:
3.if(cin>>t):
4.Why there are no other examples:
Lastly, not part of my argument, but in the defense of our community, we are acting sentimental, because someone we value has his dream taken from him in a dishonoring way. Sorry for the inconvenience we cause, but we are also humans and we do not act absolutely logical in extreme events.
(added Vladosiya tag here, since this thread is a complete mess right now, and it has a high chance to slip)
??
I know I said "I will try to answer any more questions you have", but how should I answer "??"
Also a side note, I haven't talked to Ahmet Kaan about this topic and all of the arguments here are only done with contents of this blog and carefully inspecting all his codes, so it is purely an outside view. No one requested me to do that, but I did it since I value my friend.
P.S: I worked a lot for this checking different codes, even codeforces thinks I am trying to crawl with my account :(
This one comment is more convincing than all the comments "vouching" for him.
Detecting AI is tricky, I hope CF made the right call.
I do believe he could be legit. However, I have a question. Why do you guys have to defend him and assume some things he did? Why doesn't he himself answer every question instead of saying "There is nothing I can do to prove my innocence". I don't know but I feel like he is trying to avoid discussion.
Imagine your 7 year old account gets banned and you did not cheat. The bare minimum you would do is answer every question raised in this blog.
Well, I think he is currently not approaching this matter ratioanally, since he is pretty devastated about the event. Preparing a full defense actually requires refuting many cases by only existing details, and for this he needs actual dedication and effort (it took 8 hours of mine). I think he just isn't in the correct mood for preparing a full defense and approaching a little emotionally. Also, it is not like he didn't write anything, I think what he has wrote actually covers how events have occured in his perspective. As you can see most of my text is not assumtions, just pointing out small details that reduce the probability of AI by a lot.
He answered some actually, 2 screenshots of text and a comment from his new account is in this blog. Also it probably wouldn’t seem as credible if he answered every question in comments, instead of making a statement.
you should also add the fact that some editors have built in beautifiers in them which help formatting and debugging so that is another explanation
Actually, that is probably not the case, since my argumentation against AI also applies against formatting. VS code has 2 types of formatting, which is either full document format or spesific selected area format. For selected area format, you need to apply a shortcut which is not likely in spesific formatted areas. Additionally, his submissions are partially formatted (only spaces after commmas, but nothing about parenthesis). Any formatting tool or AI should have been formatted as a whole.
Well, vs code has a transcript of changes right? So we can just look at that? If I'm mistaken please correct me.
Well, that's a good idea, but I wish that was proposed sooner. Let me ask it to him, but if he wrote any code after this contest, that history is probably long gone (I think it logs a very limited amount)
Edit: He said he looked at it when he first learned he got banned, but records weren't there. I also verified both my university muscle memory theory and addition of if(cin>>t) not actually helping the issue. He said code wasn't getting inputs for some reason, and he added that line just checking. He admits it doesn't make sense, but let's be real, when you put off your competitive programmer hat, the probability of using if in cin is not 0, but something like 20% maybe. The strongest argument against him is this line and I think his explanation make sense, like imagine he is being legit, what else do you want him to prove?
How is it not saved? In my timeline it shows all past activity and changes for a week, and the contest took place only a few days ago. Even if the times saved on his vs code are different, a few days should still be possible.
I am not sure if they are not saved at all or deleted somehow, but we weren't able to find it. Last records looks around 6 months ago. Maybe an error or something I don't know. It would really help our proof but we can't find it. But even though we don't have step by step, submission frequency actually helps this, like 1935-D is a good save point between 1920-D and 1942-D. I still think my arguments stand without any additional checkpoint. But still thank you for your help.
(Note that I thought it was limited because when I checked mine I saw only last 2 days, but maybe I save a lot. idk)
I was wrongly accused of cheating in the past as well, so I know firsthand how damaging and frustrating such accusations can be. For that reason, I can vouch for AhmetKaan. Judgments like this should be based on actual evidence, not on coincidence or superficial similarities such as tabulation. It is also worth keeping in mind that strong achievements can sometimes attract unfair suspicion or envy.
How do did you react with such accusations? Did you finally clear your name (proven not cheat) successfully? Please share your experience, I am curious :)
Auto comment: topic has been updated by carcinisation (previous revision, new revision, compare).
After "researching" about Ahmet Kaan, I 100% agree that He is a great mentor and contribute much for the community, though I didn't change my view about this case and I'm still not vouching for him, maybe these links is useful for "introducing" Ahmet Kaan to others who don't know who is Ahmed Kaan yet:
It's over, the verdict is final: https://mirror.codeforces.com/blog/entry/151975
Note to others: Please don't cheat or even just doing something sus during official contests!
Funny, this is the first time I'm not mad getting downvoted, I'm sure only unfair people would downvote the my comment above!
Doflamingo :FIRE:
I can't vouch for him.
Vladosiya bro plz disable me too
Done ✓ congratulations!