(And how I accidentally “proposed” an IMO5)
It’s been almost two and a half years since, and yet if you asked me for my most unique and memorable experience, there is a good chance I would still mention this story. It takes more than a healthy dose of idealism for 16-year-old me to wake up one day and decide “hey, maybe I should organise a functional equations (FE) contest”, but somehow it worked.
I thought it would be nice to document the process, if nothing else for nostalgia.
0. (Long) Prologue
User created contests mainly refer to contests by AoPS users for AoPS users, although recently this definition has expanded a bit to include “revenge” olympiads. These have existed for a long time, but they really took off in 2020. And like everything that happened in 2020, it was because of the pandemic.
Many stranded contestants banded together on AoPS to form communities (on Discord), first to group-solve problems, and then to group-propose them. I was not around when this started, but I eventually joined many of them.1
My part in this starts at FEOO (see the questions here), one of the more reputable contests amongst them. I was a participant, I did the paper seriously, and I got a half-decent score. I remember trying the geometry question, drawing diagrams on Word, and being impressed with my solution (which was wrong).
It was in this time where I became addicted to FEs, to the extent that I would try any FE posted on AoPS. Obviously, many of them went over my head, but I began to see many similar ideas and connect different questions together.
Before long, I tried to make my own FE. This was easy – I just took an equation like and put some
s in them. I think that the ease at which one can “make” new FEs explains why I enjoyed them so much – I could do this all day and actually get results – an actual question that I made, and I own.
And then things kept going. The next year, 2021, the successor to FEOO was announced: IFEO. The organiser, Functional_equation, asked me to help, and of course I said yes. I don’t remember much of what happened, but two of my questions ended up on the test, and I was stoked.
A few months passed, and it was nearly October again. I asked Functional_equation if IFEO would run again, and here was his response:
I will tell this to other members. In fact, IFEO was just for 2021. I didn’t plan to do it every year. AoPS has many Olympiads related to functional equations. For example FEOO…
If you want, you can create your own Olympiad on Functional Equation.
Example: OFEO(Our FE olympiad), IFEC(International FE contest)…~ Functional_equation, Oct 30, 2021.
I was sad, as I already had questions ready to be proposed, but then I saw the second half of his message, and I went to sleep thinking about it. Sometime the next day, I have fully convinced myself that not only was it possible to run my own contest, but also that I was going to make it happen. How hard could it be to find 6 problems? That day, I messaged Emil, and he agreed to join me.

Over the following month, I asked many other friends from different communities to help, and many volunteered. That was the nice thing about this community – we were always eager to help with contests. For those who were too busy, I pre-emptively asked them to testsolve the questions when they were ready, and many said yes as well. So far, so good.
1. Proposals
Through the next two months, my time was split between November/December course for NOI and proposing a whole bunch of FEs. I rarely left time for anything else, but I was really enjoying myself. I still remember how I proposed many of these questions, and I’ll take this opportunity to briefly describe them.2
C1: Define for all positive integers
. Find all
such that there exists a function
satisfying
for all
where
denotes the number of
such that
I am actually very, very proud of this problem for some reason, probably because it has an unorthodox solution. To quote myself from 2022, “Very little FEs focus on the big picture, the global idea. In this problem, you do not sub one by one, but rather sub all at once, this I believe is the key difficulty of the problem.”
My motivation for this came from reading MONT, in particular the two equations and
. Both of these can be proved by double counting, and it can also be generalised to any function.
Thus, I defined , and I have the equation
. I tried for very long with divisibilities such as
, but I realised that the only way I’m going to get to use the equation is to have the term
somewhere.
I originally tried to solve , but this made the equation useless as well. I struggled to find a meaningful way to bring it in, until I figured out I could use parity: there are no solutions to
for odd
.
Now, I just had to solve for even , but this turned out to be way too hard. I had to salvage this somehow, and the even case still didn’t have any “nice” solutions. Hence, I gave up completely on the “find all functions” phrasing and went for the much easier “does there exist”. With that, the problem is complete.
C2: Let denote the set of subsets of
Find all functions
which satisfy
for all subsets
and
of
One of my experiments was to create FEs over weird domains, and one of my ideas was for the domain to be the set of grids with each cell either black or white. I wanted to formulate an FE around the fact that
, where
represented the number of black cells in row
. These problems all turned out to be very boring, so I thought about what happened if I consider including an XOR operation on the table. This would look something like
.
I tried hard to solve this to no avail. After an embarrassingly long time, I realised that I didn’t need an table anymore, this was just a
grid. It took me even longer to realise that grids with black and white cells are just binary numbers, and with XOR operations they are best expressed using subsets. I still remember feeling really dumb when I rephrased the entire problem, because it was now much easier to visualise and work with.
There was not much point using XOR now, so I switched it to . Since the equation
was too easy, I changed it to state that the number of elements in both are the same. I took roughly 6 distracted hours (oops) to solve this, and I now have another combi question.
N4: Define as the set of non-negative integers
. Find all functions
such that
1. .
2. There exists a constant such that
for all
.
3. is a perfect square for all
.
In truth, I just wanted a “perfect square FE” somewhere on the shortlist, but I wanted it to be special, so I tried to make it iterative as well. This was hard, because there is suddenly so little control over both the terms (very messy s everywhere) and the condition (no more equality). In the end, I came up with the only thing that looked reasonable (i.e. gave me as much control as I could possibly ask for):
.
I spent about a week solving this. I first realised without , basically nothing could be done, yet the solution set
and
works, which was very irritating. Hence, I decided to just set
.
After a while, I realised any solution will rest on the result that for infinitely many
. My best bet was primes, but primes weren’t working. In order for it to work, I needed the second condition. I tried really really hard over the next week to do without it, but it was just impossible, so I had to leave the ugly looking condition there.
N5: Find all functions such that for any
,
This is still my favourite FE out of all I have proposed so far, because the equation is simple yet the question has so many different steps, and uses so many different ideas.
This was slightly inspired by China MO 2021 P6: It gave me the idea to have a divisibility condition where the LHS was a single
. Since the meta was on iterative, I put the simplest non-trivial expression on the LHS:
. To keep things simple, I put the most trivial counterpart on the RHS as well.
While this question may be hard, it is very approachable and the first few steps are easy to see. Thus, I really believe I could solve it, and so I did. It was very exciting to see a third and fourth solution set appear from thin air.
Through the proposal phase, we had a persistent shortage of combi problems and medium NT problems. Both of them still weren’t exactly resolved in the end, but I think it was still enough.
2. Testsolving
We rejected some problems as being too lame, and they ended up as “sample problems” – a cheeky way to advertise our contest on HSO, which was not allowed. There isn’t much to say here, except for one particular incident –
I originally proposed this question:
gghx has a house with lights in a row, labelled light 1, light 2, to light
from left to right. Each light can be on or off. He has a special light switched controlled by a function
. When he presses the switch, it would count the number of lights currently on, say
, and change the state of light
. gghx realised that regardless of what the states of the
lights were initially, he can always turn off all the lights by pressing the switch a finite amount of time. Find all functions that the switch can be controlled by.
(I wrote this while thinking about FEs over weird “domains” as well) This question garnered a lot of attention, possibly because it looked unique, and we spent a lot of time trying to improve on it. I remember Vlad even came up with the exact formula for the number of presses needed.
All was going well, until one day one of the testsolvers messaged me and said that this was basically IMO 2019 P5. I’ll leave you to imagine the rest of the story…
3. PSC
I chose 4 members of the team whom I trust will work well together – Vlad, Arkan, Emil and Aritra, to form an informal Problem Selection Committee to decide on the 6 problems.
I was originally pretty serious about this – like getting an anonymous vote and feedback form system3, but I soon realised there was no need for such things for an informal contests. We just had to make sure of two things: the problem distribution was good, and P1 was easy4. The rest of the choices were not particularly important, and we just voted on discord.

Aritra and Vlad helped me with the formatting of the paper and the shortlist, which I am very grateful for. They have had a lot of experience through past user created contests like GIMO and OIMC. In one night and through one voicecall, the paper was finalised. Now, I just had to wait.
4. Organisation
Against popular advice, I decided to announce the contest before our problems were decided, or even testsolved. I felt that I gave ourselves enough buffer to work with, and that we would definitely be ready before the release deadline. Having done what I have done, however, I shall concede that one should follow said popular advice, as it caused a lot of unnecessary stress (especially with the IMO 19/5 appearing out of nowhere). No matter how ready you think you are, something will go wrong.
But anyways, this means we needed a name, which was once again down to a simple Discord vote.
The post itself was modelled after other well known user created contests, and Aritra helped me design a logo and format the contents. The rest of the job was easy – the signups came in and I just had to send the paper on the date itself and watch the submissions roll in.
On the day itself, I couldn’t contain my excitement. I remember walking past one of the SRC tables in HCI (my high school), and spontaneously deciding to sit there and post the problems 10+ hours early. I mean – I firmly believed that these problems were awesome, and I wanted everyone to see it earlier.
5. Marking
Expectedly, as with any user created contests, only about 15% of signups actually submit anything. This made marking a lot easier, so we weren’t complaining. I did feel slightly disappointed with the underwhelming number of submissions, but then I reminded myself that even I don’t follow up on the many contests I have signed up for. And that was fine.
Marking was hence very straightforward, and my team finished it in a few hours. Creating marking schemes was fun, because as a current contestant, I finally got a glimpse into what happens on the other side of the curtain.
6. Epilogue
I won’t pretend that SEIF was significant in any way. But it was very significant to me, because it started as a dream and I saw it through. I think this set of problems have been viewed quite favourably since its release.
Except for P5, which turned out to be a 1990s longlist question. This experience also showed me that it is unrealistic to expect a contest to always be free from repeated problems, because there are just so many of them out there. I never thought it would be so hard to check for unoriginal problems until it happened right under my nose.
And that’s all! If there’s anything to take away, I’d say that having a healthy dose of idealism can go a long way.
- One consequence is that a lot of problems, which I think are better than actual contest problems, can no longer appear in any contest at all, as dozens of current participants from Korea to Chile have seen it already. ↩︎
- Algebra FEs are largely proposed by adding fs in random places and then hoping it works, so I shall skip those. ↩︎
- Because by then I have read this post by Evan. ↩︎
- This was a key lesson learnt from IFEO, where P1 (set by me) was a big demoraliser. People even rated it as A3/A4. I am happy that this was not an issue on SEIF. ↩︎

Leave a comment