Hello everybody. So I was really bored tonight and looked at so many comments being like "sorry_dreamoon is X" and then people arguing and disagreeing. Since I had nothing better to do, I decided to finally unravel the truth of who he actually is. Here is the full case and how I actually got to him, hope you enjoy! :D
Selection
Let's start by the obvious. He managed to get first place in Div2 and he got second in Div1 (would've been first if the scores were static). So what we know is that he is really good.
Let's look at the past 10 Div1 contests. It turns out that only 8 times it happened that someone with a rating of less than 2500 got in top5. This is 8 times out of 50 people being in top5. But he was second and almost first, so he is better than that.
It turns out actually, that in the past 10 Div1 contests, only 2 times it happened that someone with rating less than 2500 got in top3.
Combining this information with sorry_dreamoon's confidence and great results — we can assume that his rating is 2500+. That leaves us with 76 suspects.
Reducing the suspects
As pointed out a few times, the obvious way is to remove all people that participated in CF rounds #284 and #292, as those are the rounds sorry_dreamoon participated in. Obviously it's hard to perform well on two accounts, so we can be sure those people are not him. Removing those from our suspect list we are left with 36 suspects.
Reducing the suspects even further
As you can notice from the blog post of round #292 dreamoon_love_AA invited sorry_dreamoon to participate 26hrs ago (as of when I was investigating) and the respond (top comment) was almost immediate. This shows that our suspect was browsing codeforces at the time. And since the account was initially made only as a one-time joke, he most likely was browsing from his real account.
So from this, we can remove all our suspects that havent logged in the last 26 hours.
Well, believe it or not, we're down to 18 suspects!
The final conclusion
Now here the things start to get a little bit tricky. But imagine the following scenario:
You create an account with the only purpose to be first in a competition. If you fail, it will be somewhat embarrasing. While you want to keep your identity private, you want to be as good as you can. Would you use your primary programming language?
For me at least, the answer is absolutely yes. If you are used to a language, then your maximum performance is with that language and changing it is incredibly risky.
While not certain as the other two methods of eliminating, this method is still logical — "there is no good investigation without some assumptions".
So, sorry_dreamoon is using Java. Guess how many people from our 18-people-long suspect list use Java? That's right, you got it — 1!
And who is it... inserting drum roll
Not convinced yet?
You know, when we try to mask our code we would usually change names of variables and functions but the structure and the way your thought goes is hard to change. So, it turns out that sorry_dreamoon has a code including maximum flow — 9251954.
It turns out that qwerty787788 has maximum flow too, in the recent Rockethon — 9762794.
So, looking at the function that actually does the flow you can see the following:
qwerty787788's code :
class Flow {
int n;
ArrayList<Edge>[] g;
Flow(int n) {
this.n = n;
g = new ArrayList[n];
for (int i = 0; i < n; i++) {
g[i] = new ArrayList<>();
}
q = new int[n];
h = new int[n];
cur = new int[n];
}
etc
And this is sorry_dreamoon's code :
static class Flow {
int n;
ArrayList<Edge>[] g;
Flow(int n) {
this.n = n;
g = new ArrayList[n];
for (int i = 0; i < n; i++) {
g[i] = new ArrayList<>();
}
q = new int[n];
h = new int[n];
cur = new int[n];
}
etc
What is the difference? It's literally the word "static".
This is just a small fraction of the flow class. About 90% of it is completely identical.
Conclusion
To be honest I really liked the mysteriousness of sorry_dreamoon but I really had nothing better to do tonight and since I really wanted to live my detective-dream, I hope everybody takes my work with a smile :)
P.S.
And in case dreamoon_love_AA hadn't figured that out by himself yet, I hope it helps him sleep better at night :D
P.S.S.
I hope this doesn't bring any problems to qwerty787788 since he is a very good coder and I think we all can agree that this was a very well carried out joke (though technically my "logic" isn't a solid proof that it's him at all)
excellent work , Sherlock Holmes could not do better :)
My dream of being a detective is fulfilled * tears up *
That being said we can see that qwerty787788 has won Div. 1 contest only once, so today he could have his second best result ever.
Waiting for qwerty787788's comment now :D
And I am waiting for further investigation and MikeMirzayanov's comments :)
Still waiting for qwerty787788's comment
Aw man, now there won't be anyone claiming I'm sorry_dreamoon...
You forgot about MikeMirzayanov :D
What if this person didn't log in CF when he/she was reading?
What if this person didn't even participate in the last 10 rounds contest?
And what if this person used a template, or just directly used an old code from others for convenience?
Also last visit display may not be accurate. For example, it shows your last visit is 7 hours ago, but you published this blog less than 2 hours ago indeed.
As I mentioned in the post, I like the phrase "there is no good investigation without some assumptions".
Obviously anything is possible, but we're picking the most probable scenario, that's how detectives work I presume, or that's what I've seen in movies :)
Anyway, it seems to have worked so why challenge the logic? :D
P.S.
Though you're right about the fact that none of this is absolutely solid evidence :)
Cool work! The post is very-very logical, and so reasonable.
A good detective work. CodeforcesPolice may lose his job and be replaced by you.
(The second sentence is just a joke...)
This blog looks like editorial to one of the hardest problems.
Also, both of them don't put a space before putting a smiley in their comments.
http://codeforces.me/comments/with/qwerty787788
http://codeforces.me/comments/with/sorry_dreamoon
Of course, I looked into that also but did not use it as a factor because of the exceptions:
spaced smiley
and another spaced smiley
and another one...
As I was investigating he was my prime suspect because of the often use of "..." in comments and more because of his contest participation. It is easy to see that from the past 7-8 Div1 contests, the one in which he hasn't participated are the ones in which sorry_dreamoon did. So that quickly made him a prime suspect in my list :P
BTW...he become international master only in two contests !!!
And achieved +90 with 6 comments
Sherlock just here.
It seems he just solved "Little Elephants and Numbers" 221 B
I think sorry_dreamoon is a good coder but he/she wants to have 2 handles at the top of (some) contests... Anyway, it's a cheat and Mike should ban 1 or both handles.
Without this events(moments) codeforces's life would be enough boring. And instead of writing this irrelevant comments just change your photo))))
I agree, you'd rarely see so many people of the community focusing and having fun with one thing together, so it was a very cool joke :P
IMO, there are a lot of ways to make the Codeforces funny without Rules violation.
It's forbidden to create/use multiple accounts and ordnung muss sein.
Nobody wants to live in a cesspit, but a lot of fakes in DIV2's top turns it into the shit. I don't see any difference between "sorry_dreamoon" and any other "top-unrated-newbie", so he must be (IMO) severely punished.
IMO you should be severely punished for the lack of sense of humor.
A lot of fakes turn Div2 to shit everyday without getting punished because nobody bothers to really go and find out who they are. If it was such a severe problem in the eyes of the staff, I think IP trackings and stuff like that could be made to ensure less people create multiaccounts and participate.
But since obviously nobody has done these things I don't like the idea of "severely punishing" the guy. He made us all laugh and you should look it with humor in my opinion, I realize it's a violation when looked from a technical point of view, but we're humans afterall.
I believe the most "severe punishment" he could deserve is removing the sorry_dreamoon account.
Even he said it...
P.S.
And if we get really technical, you can't solidly prove it's him. Maybe they used the same template for flow? Unlikely, but still possible :P
IP tracking is useless, you can just go somewhere with free net if you want to compete under a different account (for me, it'd be the computer lab at my dorm).
Or maybe sorry_dreamoon just copied someone else's template for flow. I do that when Ford-Fulkerson isn't enough :D
if your photo is like mine, when you logged in and you open your profile page, look at your photo and the question below your photo :v and that's the joke like "want to change your photo?" "no, i don't want to change it and don't ask me more about that"
my photo is a joke, right ?
As soon as I saw sorry_dreamoon codes, I was pretty sure its mmaxio or qwerty787788, because I refer their codes regularly. It is also known that qwerty787788 hardly comments on non educative talks on blogs. But, I think for the first time he commented on such a conversation which too raises doubts. BTW, sorry_dreamoon is over and gone story. I must say some of the coders here deserves to be in secret service agencies like MI6, GRU, CIA :-P
" I must say some of the coders here deserves to be in secret service agencies like MI6, GRU, CIA :-P "
Maybe they already are in some of them. Who knows?
Next challenge: find out who is Bredor.
Many people know this already)
Who is he?
And who is worse is also interesting :))
That's also known!
So and who is J4T8Z9 then?
This question doesn't seem really hard to me as well :DD
Who are they..??
Your mom
i am going to hate codeforces community for this commend takes +128
Don't be so jealous!
everything is fine, its not +128 now, it's + 144
deleted because there are too many negative response.click upvote so others can see it.
A box without hinges, lock or key, yet golden treasure lies within. Who am I? ( click Rev. )
good research =D
It will be more funny joke if the problem name of the next contest becomes "**Guess who is "sorry_dreamoon"** " . Always keep a smile :)
Do you live in 221b, Baker street? :p
This post has received more likes than many contest announcements, yet it is not even on the main Codeforces page. Good job, Enchom .
WTF! you are the best investigator i have ever seen !!!!
we were found earlier than you. here
this commend was -13 at the begining after than it came +13
at the end here we are -28
i think i didnt deserve -28
he is in Top 10 contributors , world is not fair
But did anybody provide a solid proof?
did u watch mentalist. i dont need solid proof,(anyway he takes 1000 plus , 100 plus is enough for me)
The mentalist is my favourite show, but even Jane provides solid evidence at some point :D
he burying someone to confess,
taking Asthma inhalers ,
RIP qwerty787788's account
May be Enchom is sorry_dreamoon . He intentionally did everything , so that we suspect qwerty787788 :D
Investiception!
How long did it take?
Not too long, I had some fun with excel tables of suspects and it took about an hour or two with a lot of distractions from friends :D
WOW! That was epic! Genius.
qwerty787788 is not gonna comment, I challenge.....
I think that sorry_dreamoon programmed in java I facilitate the investigation of the discovery of his true identity , I think it would have been more difficult to find out if he programmed in c ++.
And ... tourist is being in the same team with qwerty787788. Maybe both of them are combining to beat dreamoon_love_AA :)
I think tourist doesn't need to combine his skills with anyone else in order to beat whoever he wants.
Congratulations for reaching top 10, Encho!
What if sorry_dreamoon's fake account is qwerty787788 and all this time he was competeing on a false account, but now he decided to show up.
wow !!! what a logical explanation !!! proud of you my bwoy ;)
Yes, I think that if one of accounts in {sorry_dreamoon, qwerty787788} should be deleted, then it's the qwerty787788 account.
maybe sorry_dreamoon programming like qwerty787788 to divert us in the wrong way :D
maybe sorry_dreamoon is actually MikeMirzayanov who is copying different codes of other users to trick us ! :)) (jk ;))
happy new sherlock holmes!
Obviously he did the best thing he could(not leaving any comments here), if I was him, i'd do the same.
This should be the most "liked" blog ever! See, just 1 blog and Enchom are in the top 10 contributors! Congrats!
Cool story, and very similar to be true, but... If your investigation gave fault, really sorry_dreamoon now is laughing.
Nice deductions, man!
Codeforces doesn't like necroposting
And something magical about sorry_dreamoon
you have a sharp eyes :D
.
I am sorry but did Soni tell you that?
Damn!That was an excellent investigation. But that was 4 years ago !
Why don't such investigations take place today ? It would be nice to know the face behind other legendary alts !