### Arpa's blog

By Arpa, history, 3 weeks ago,

Hey, Codeforces!

I’m AmirReza PourAkhavan, the former Codeforces Contest Coordinator. I let the story become complete and I’m sharing it now.

The story is about a 16-year competitive programmer, who left his family and migrated to another city alone to follow competitive programming. After seven years, he advanced to the International Collegiate Programming Contest World Finals, twice.

Read the previous parts: 1, 2, 3.

# What happened previously

I was a lone programmer, in a small city, trying to learn CP and prepare for the Iran National Olympiad. It was not as successful as I expected. I tried to change my school and I immigrated to Tehran, alone. I entered AE high school to learn from its inspiring teachers. I grew a lot there, I was about to win a gold medal.

#### Second Stage

Stage Two takes place over two days. The first day is a multiple-choice exam and the second day is a descriptive exam. The multiple-choice exam had 25 questions. On the first day, I managed to solve 17 out of 25 questions. I thought that probably I had very few mistakes.

The second day of the exam started with a familiar question. Right after seeing the question, I felt it could be transformed into a question that was discussed last week in the graph class. I started to attempt the question that was discussed in the graph class. A lot of time passed; more than three hours. Eventually, the space provided to write the answer for the first question was filled up, and I finally gave up on solving this question.

I moved on to the second question. The second question was solved in twenty minutes. There were about forty minutes left in the exam, and with the anxiety I had, I couldn't solve any other questions.

When I came out of the hall, I was confused and stunned. I was knocked out when I realized that my solution to the first question was fundamentally wrong. I took the metro home. When I arrived, the answer key for the multiple-choice questions was published. I started to calculate my result. I counted my mistakes... one... two... three... up to six. I opened the calculator. I calculated my percentage. It turned out to be 38 percent.

I fell from the chair to the ground. Tears quickly filled the ring around my eyes and spilled out of my sockets. Behind the sparkle of my tears, it seemed as if the house's ceiling was undulating. For a moment, all the codes I had written flashed before my eyes. In a moment, heavy-lights, centroids, all data structures, algorithms, and all the Codeforces problems flashed before my eyes. All the 1,200 problems I had solved on Codeforces. Perhaps no moment before or after that did I feel so broken this much. I have never been so upset. Even recalling this memory is not easy for me.

Nine months away from family, difficult commuting conditions, the pressure from other students and teachers towards me, and sleepless nights, all went up in smoke. I couldn't believe it. I started to argue with a classmate about my mistakes, but unfortunately, the answers were correct, and that 38 percent became my final score.

One of the images sent during the argument

I was not in a normal situation. That afternoon, I went for a walk with my family. I didn't know what would happen. I vomited everything I had eaten during those two or three days due to the psychological pressure. The memories I have from that afternoon include nonsense moments, hollow laughter, a head on the verge of bursting, a weak body, and a wounded soul.

When I woke up in the morning, my whole body was covered in pimples, even the scalp. Those few days passed with me worrying about what my score would be and how much the cutoff — the minimum score required to pass — would be, accompanied by sighs and regrets.

We returned to school. Mr. Asadi came to review our performance in the second stage. He calculated my score and estimated my chance of passing at 15%. When I came out of the counseling room, I was dazed and confused. Not that I wasn't prepared for this, no, but to hear within a few days from someone that I will win gold and now hear that I will not pass the second stage was a heavy blow; it hit me on the head. It hit me, and a few minutes later, I broke down crying in the school's congregational prayer line. It was the first time I had cried during prayer.

I felt like no one was acknowledging me. I remembered when I had come to take the entrance exam, the school manager told others, "So this year, we will have a gold medal from Yazd!". But after what happened, it seemed I had been forgotten. Now, looking back, it may not have been so, and my heightened sensitivity could have been the reason for this feeling.

On the other hand, others — not my schoolmates — approached me. These people played a significant role in helping me digest what had happened. In fact, they had a profound impact on my personal growth.

From that day on, I started wearing black clothes. Even the next year, on the anniversary of phase two, I dressed in black and dedicated the day to crying and mourning.

I wanted to fail myself in the school exams so I could participate in the Olympiad next year. But when I inquired, I found out they had made a rule that this couldn't be done.

The final school exams started. I didn't care about the exams and practiced coding instead. As a result, my average score was just over 15.

After the intense crying subsided, disappointment gave way to a feeling of vengeance. In the short time (about forty days) between the second stage of the Olympiad and the announcement of the results, I coded day and night. The number of my solved problems on Codeforces went from 1200 to 1500. Mehrdad Saberi, who won a silver medal that year and a gold medal the next, said, "Arpa is coding more seriously now than all of us," meaning that someone who knows he might not get accepted is taking it more seriously than those of us who know we will be accepted.

We gave back the house we had rented since, had I been accepted, I would have had a dormitory for the summer camp. Summer camp is part of INOI in which students have some classes and exams and finally, the medals will be determined. I returned to Yazd, to home. Not just me, but our entire house was engulfed in sorrow. Those days were spent in tears, sorrow, and both live and virtual contests. Alongside these sorrows, I grew personally through my acquaintance with these new people.

On Saturday, July 2, 2016, at night, the results were announced. I received these messages from one of the guys:

[03.07.16 03:03]
Hello, the best thing I can say to you is that I'm really happy you didn't get accepted.
[03.07.16 03:04]
Of course, since you're dumb :joy:, I'll clarify the sentence for you.
[03.07.16 03:05]
I mean, you've become so strong that if you had come to the summer camp, you would get a gold medal, and you took the
bread out of our mouth. :))

I wasn't in the mood for anything. I filed an objection, which was naturally rejected. And that was it. My student Olympiad dossier was closed. To this day, I sometimes dream that I am sitting for the second stage of the Olympiad. Sometimes I dream that another opportunity has arisen for me to participate in the Olympiad.

Next day afternoon, a channel posted the following:

Hello and congratulations to the kids who were accepted or not!
After all, it's destiny!
Someone said that everyone's chance is the same! But I don't believe in it!!! I don't believe in luck at all! I remember when Master Shifu told the Kung Fu Panda that nothing happens by accident (XD)
But I do believe in another correct thing that has filled my left side! And above all, I'm eager to try again, and that is God loves me! That's enough for a person to steer all life events towards the main goal!
Perhaps the smallest difference between these two beliefs is that I haven't lost anything, but he has! And I don't want to go back, but he wants to! And I'm not upset!
Now that we're in the 10th grade! There's an 11th-grade one among us who has put in a lot of effort for us! Well! Maybe this year he could have been one of the gold medalists! But God liked it this way for testing! Yeah! It seems that he has worked hard enough! And well, nothing has happened! Arpa, I hope you get a good rank in the university entrance exam, maybe first place!
Therefore, there's no reason to be upset if you weren't accepted as long as you tried!
"With water on determination, you can turn soil into gold
I was wrong to spend my life seeking alchemy"
Goodbye, our hero :D

Around that time, the idea of holding a programming competition came to mind. I can't exactly remember whether the idea was mine or Mehrdad Saberi's, but eventually, we decided to hold a competition. Gradually, we began collecting problems.

A few days later, I registered at Kanun (Ghalamchi). Kanun is the most famous organization for Iranian students to compete in normal school subjects and prepare for the National University Exam (konkour). Little by little, I started studying school subjects again. I couldn't quite bring myself to enjoy studying. But the subjects weren't that bad. For example, I remember I was studying optics in physics, which wasn't a bad topic.

At the same time, I started teaching in Yazd. Ali Tavassoli (AliTavassoly) had finished ninth grade at the time and was two years younger than me. He had emailed me a year earlier, asking me to show him the way. During that year (the summer of 2015 to the summer of 2016), we didn't have much contact, mostly just a few emails. But from the summer of 2016, our relationship became closer. Ali had learned the basics of programming and combinatorics. Throughout that summer, we had classes every Friday afternoon. Thus, Ali became my first student, even in the twelfth grade, the year of my university entrance exam! Our classes were about programming, and I taught him basic algorithms.

Left: Me and Ali Tavassoly, Spring 2022, right: Ali Tavassoly, Summer 2018

I took my first Kanun exam. The result was worthy! I took place 1100 (country-wise). I was happy. But one thing still remained a constant in the story: crying. I was still mourning the lost gold medal morning and night.

Since going to the Atomic Energy High School, my former school — Shahid Sodoughi — could not enroll me for twelfth grade. As a result, I had to find another school: Imam Hossein High School.

In September, I returned to Tehran to improve my school grades. I stayed at a friend's place. There was a significant gap between exams, so I had the opportunity to do other things. That year, Mojtaba Fayazbakhsh was responsible for the programming class of the summer camp. He agreed to let me attend his class. I didn’t do anything special, just helped out the kids a bit.

Thus, I entered the dormitory for the summer camp. I was with the kids. Sometimes we would even bet on virtual contests! In short, I did everything except improve my school grades! In fact, my scores even dropped in two subjects compared to before.

Me and dormitory kids

After those twenty days, I returned to Yazd again.

The first exam of the twelfth grade was good. I ranked first in the school. However, this was not very important because the school was not a good one. For me, who had studied at Atomic Energy, it felt like a fall from grace. I could hardly relate to anyone at the school. Not the kids, not the teachers, not the officials. We were from two different worlds.

The kids didn't seem interested in connecting with me either. They saw me as a proud creature who separated himself from the group. In school, there was only one person with whom I could make a connection. Despite our profound differences in foundational thinking, it was still better than absolute loneliness.

Naturally, I was doing well in terms of studying compared to them, so I had a good relationship with the teachers.

Early in the academic year, Mehrdad and I got serious about organizing the contest. We planned to hold it on Codeforces. We sent our ideas to the coordinator at the time (Gleb). About a month later, on November 22, our competition was handed over to Nikolay Kalinin (KAN), and we continued the journey with him. Some details are described here.

While I was busy preparing the contest, I received advice from my family and especially the school. It got to the point where the school principal personally advised me to study for my lessons instead of focusing on such activities. But the truth was that the profound impact that organizing this contest had on my future was incomparable to the time lost for university entrance exam preparation.

During the preparation, a large number of problems were discarded, and others were selected as replacements. The final problem set took about a month to prepare. During this short period, I studied less, and my mind was occupied with the contest.

Our contest was not an ordinary one. We had drawn photos for all the problems. The problems had reasonable and interesting stories and were encompassed by an overall theme. Altogether, we took it very seriously and we tried hard.

The drawing for problem Div. 2 B of our contest

On the day of the competition, an unprecedented and crazy incident occurred on Codeforces. Due to this hardware incident, MikeMirzayanov decided to postpone the competition by five days. The contest’s blog post was hit with an endless stream of downvotes. I wondered how this could happen! Such an incident was unprecedented in Codeforces history, and it happened on the day of our contest. I saw this as a misfortune and added it to the bad luck of stage two.

Days passed, and the contest day arrived.

To be continued...

• +99

By Arpa, history, 5 months ago,

Hello everyone!

I'm just back from Syria. I was holding a camp for the Syrian team going to IOI 2023 for a week there.

First, let me use the opportunity to thank the hospitable people who hosted this camp. The camp was hosted by the Distinction and Creativity Agency (DCA). They tried out of their capacity for hosting the event as best as possible. Although Syria is not a rich and developed country, they pay attention to the Olympiad and their talents. They welcomed me in the best way and planned for some excursions and more.

The members of the Syrian team are Wael_Zaiback, aminsh, BERNARB.01, NeroZein. Almost all of them were super intelligent but without much knowledge. This is normal for a country without an Olympiad system and structure.

Because of that, I tried to cover as many topics as possible in the camp. To name some, I can mention geometry, tree data structures, and sqrt decomposition.

I hope the best for the Syrian team in IOI and the rest of their lives!

• +134

By Arpa, history, 9 months ago,

Hey Codeforces!

I’m AmirReza PourAkhavan, the former Codeforces Contest Coordinator. I let the story become complete and I’m sharing it now.

The story is about a 16-year competitive programmer, who left his family and migrated to another city alone to follow competitive programming. After seven years, he advanced to the International Collegiate Programming Contest World Finals, twice.

# What happened previously

I was a lone programmer, in a small city, trying to learn CP and prepare for the Iran national olympiad. It was not as successful as I expected. I tried to change my school and I migrated to Tehran, alone. I entered AE high school to learn from its inspiring teachers.

First day of school. I got to know my classmates: Yara Kamkar (yarak) and Michael Nematollahi (Deemo). As I mentioned before, AE is one of the few schools in Iran that have olympiads department. The olympiads department has its own manager and weekly program. Our weekly program consists of two free days, two days of normal lessons (Math, Physics, …), and three days of classes especially for the olympiad. For example, for the Informatics olympiad, we had combinatorics, graphs, algorithms, and coding classes.

Here is a suitable place to mention my teachers at AE high school:

• Mojtaba FayazBakhsh (moji): INOI (Iran National Olympiad of Informatics) gold #1 and IOI silver. He was and currently is my inspirational life mentor.
• Mahdi Shokri (M.Mahdi): INOI gold #1 and APIO gold. ICPC bronze medalist.
• Amin Bahjati (Lost): INOI gold, INOM (math olympiad) gold, IMO silver #1.
• Ali Bahjati (LiTi): INOI gold (two times), IOI gold (two times).
• Abolfazl Asadi: INOI silver. Somehow the godfather of theory in INOI.
• AmirMohammad Dehghan (PrinceOfPersia): INOI gold #2 and IOI silver.
• Ali Haghani (Haghani): INOI gold #1 and IOI gold #6.
• Seyed Ali Tabatabaee: INOI gold #2.

By gold #x I mean the x-th place between gold medalists. They were great teachers. Maybe the best collection gathered for any competitive programming class in history. On the first day of our coding class, I managed to solve a nice geometry problem, while no one else managed. Great start! But things were not like that.

#### Where I lived

Fallah neighborhood

I was living in a small house. With a kitchen but no room. It was more than enough for me as a single student. The house was located in the Fallah neighborhood. With respect to cultured, warm-hearted, and likable people living there, Fallah is known for street fighting, addiction, and extortion.

For me, as a sixteen-year-old boy, living in this neighborhood was somewhat difficult. While living in that neighborhood, I witnessed some scary things. These may be normal for the people of the world. But for me, who had lived in Yazd — one of the safest cities in Iran — these were very unusual and scary. To better understand the environment in which I grew up, I can say that I have never heard of extortion in Yazd.

During my stay in that neighborhood, I once witnessed a street fight. Two groups of several people attacked each other and one stabbed the other and both groups ran away. Another day, while I was waiting for the bus, a passing drug addict fell right in the middle of the street. People came to help and brought him to the side of the street. Another time, I arrived in Tehran by train from Yazd in the very early morning. I took the subway to the station near home. There was about an hour left until sunset. Someone followed me from the subway to my house. That 15 minute was the scariest 15 minutes of my life.

To get to school, I used to leave home around 6:20 in the morning. I would take a bus to a station and then take another bus. Then a twenty-minute walk takes me to school. I usually reached the school around 8 o'clock. I always had questions in my mind that I solved on the bus. Usually programming problems and sometimes a theory. Sometimes I fall asleep while thinking about the problem.

#### At school

It wasn't long before I realized that I knew even less than 10th-grade students. For example, I didn't know about LCA and they did. After entering the school, I experienced a sharp drop in my rating so I was below 1600 for a long time. My performance was bad in classes and I felt a serious difference from my classmates. Sometimes Yara (one of my classmates) helped me learn a subject.

The classroom atmosphere was cold. On the one hand, the number of classmates was small, on the other hand, a cold war started between Michael and me. I hardly remember some details. The whole story was that, in my opinion, Michael was very arrogant, and this arrogance hurts me. Yes, I was much weaker, but this couldn’t be used as a reason for him to ignore me. I miss this amount of ignoring. This cold war lasted until the end of school, and even after that, it didn't get much better. I was sometimes teased not only by my two classmates but also by the teachers for being weaker.

From the day I entered the new school, I studied the Olympiad seriously. According to the official statistics of our Olympiad manager, I broke the high school record for the most hours of study per day, week, month, and year. One day I was coding for seventeen hours and forty minutes from midnight to the wee hours of the next day (something like twenty-six hours). I remember that there was doubt among the counselors of the school if this number of study hours is real. The manager of the Olympiad replied: "Yes; He [Amirreza Purakhan] is like a rocket." It's a shame that I don't use this opportunity and ignore the efforts that the Olympiad manager — dear Mr. Ali Shahsavari — made for me. It is a source of happiness that I am still in contact with him.

Ali Shahsavari

Many nights I would code until around 1-2 AM and wake up again at six to go to school. The night before holidays, I sometimes slept early. I would wake up around four in the morning and start coding. One of my interests was to see the friends' status page on Codeforce. I used to enjoy when I would wake up early and get some accepts and then see that the others had started working.

All these efforts, however; gave fewer results. My performance in classes was not good. I didn't do well in Codeforces contests either. Although, I did not do so badly on the school tests. The graph class was very bad. I could hardly solve a question in class. In classes, we used to solve Div.1 E questions, but sometimes I couldn't even solve Div.2 B in contests.

About three months of the school year had passed. Abolfazl Asadi — the head of the computer department — held a meeting with each of us separately to discuss our situation. Mr. Asadi's words in that meeting were realistic. To some extent, it was understood from his words that he is disappointed with me. After that conversation, there was no particular change in me; Neither positive nor negative.

First semester exams came. During this period, Olympiad classes were interrupted for about a month. I didn't pay attention to the semester exams and focused on coding. Sometimes I would sleep at 9 o'clock at night and wake up at 3 o'clock in the morning and start coding. I coded day and night. In just one period of four months, I accepted ~800 problems in Codeforces. I used to participate in many virtual contests and after that, I would solve the questions that I was not able to solve in the contest. Some days I participated in five virtual contests.

From the beginning of the second semester, I felt a slope in the programming classes. But in Codeforces, the situation didn’t change.

#### It finally led to a result

On February 4, 2016, I ruined another contest and became a Specialist again. Three days later, in round #342, I ranked 18 on Div.2 and got +229. I also broke my rating record.

Wow! Coder Arpa competed in Codeforces Round #342 (Div. 2) and gained +229 rating points taking place 18

Less than twenty days later, I reached Div.1. I passed 1900 and wore purple. Two days later, I took part in a contest again and gained a positive rating again.

The morning after that contest, when I went to school, the schoolmates' behavior changed. I was looking like a new person. I was floating on air. Finally, my efforts were paying off. My growing trend continued in the classes. In the graph class, however, I still did not have a good situation. The graph teacher suggested that I should show up in the 10th-grade class.

The beginning of the second semester was accompanied by several changes in the weekly schedule. Seyyed Ali Tabatabai gave his place to Mojtaba Fayazbakhsh. The first day I saw him, I did not have a positive opinion. Earlier, when I was in Yazd, he had a class with us for a few days in Yazd Nowruz camp. Nowruz is the Persian new year holiday. These classes were not interesting to me. Especially that after he described the solution to a problem, he asked me to come to the whiteboard and explain and I couldn't! He also emphasized that he has studied a lot on the way to his success. My impression was that he is a person of ordinary talent who got succeeded by studying too much. This was not desirable in my opinion.

Mojtaba FayazBakhsh

His classes were different from other teachers. He used to talk about unordinary topics in his classes: limits, probabilities, physics, and even the problem of determinism and free will! Things that maybe had nothing to do with the Olympiad. After each class, I and Mr. Fayazbakhsh both used to go to the subway from school. It was about half an hour. We had different conversations on the route. Sometimes we didn't finish talking on the route and we continued in the subway for a while. I was never that close to a teacher. It didn't take more than a few weeks for me to realize that the opinion I had of him was wrong. I really liked his character. In that teenage mood, I felt him as a mentor, somehow. I remember he asked me for feedback once on the route. I respectfully suggested that there is a lot of irrelevant discussion in the class and I prefer the class to focus on the Olympiad. Of course, I also gave positive feedback, but I don't remember.

The same growing trend continued until Nowruz. I stabilized my rating. I was completely confident in the Nowruz camp. All in all, I was the best in the class during the few weeks of classes held after Nowruz until the second stage — late April. That is, I solved more questions than others. Five days before the second stage, Mr. Asadi had important talks with me. Part of what he said was that if you progress with the same slope from the time between stage two and stage three, I strongly predict you will win a gold medal. I saw gold before my eyes. I was tasting success.

During these seven months that I lived alone, I traveled to Yazd two or three times. Usually, my mother or father came to Tehran every few weeks. They would prepare some basic ingredients for food and stay for a day or two and return. Mornings, usually minutes before leaving the house, I would spread cocoa on bread and make breakfast. The school served lunch. The remaining: launch for two days and at dinners. I usually cook rice. Along with rice, I sometimes heated frozen stew. Sometimes I fried chicken. Sometimes the landlord brings me food. Many nights, before going to bed, I remember that I haven't eaten dinner. There were different options on the table! Some nights I ate rice and tomato paste! That was interesting. Some mornings, I just remembered that I don’t have bread in the house. The natural result was to starve.

While cooking, I would solve questions and even participate in virtual contests. Result? Burning food. The rice I cooked usually came out dry. Because every time I made rice, I poured so much rice into the pot that it overflowed while cooking. To summarize, these were all peripherals and the main goal was the big goal I had aimed for. I was born to win gold and now I just needed to wait a little longer to achieve this goal.

A few days before the second stage, my family came to Tehran to spend the remaining days together. I should rest and prepare for the exam. In these few days, after months, I ate good food! I ate good food at lunch and dinner and enjoyed being with my family. Of course, despite the teachers' advice, I didn't stop coding even the day before the exam.

To be continued...

Update: Read the next part here.

• +179

By Arpa, history, 13 months ago,

Hey Codeforces!

I’m AmirReza PourAkhavan, Codeforces Contest Coordinator. I let the story become complete and I’m sharing it now.

The story is about a 16-year competitive programmer, who left his family and migrated to another city alone to follow competitive programming. After seven years, he advanced to the International Collegiate Programming Contest World Finals, twice.

## Trying alone

In my tenth grade, the situation got worse. Before that, at least, I had some colleagues and at least a class per two weeks. But in the new grade, these brights disappeared too. Still, I was trying to do it alone. I remember when I learned the Dijkstra shortest-path algorithm and implemented it for the first time, how happy I was.

Suddenly, my rating growth started. As you can see, my rating in Oct ‘14 was 1057 (minimum rating) and In Feb ‘15 I achieved 1761. Those years, >= 1700 was Candidate Master and Div. 1. The special thing is, my rate growth was not because of my endeavors in that tight time segment. In fact, a year of trying and losing ratings resulted in a big jump: a 700 jump in ratings. I got so much motivation. I was doing well in contests.

In the first stage of the national olympiad, I achieved a weak result. The good point was, it has no effect on the outcome of future stages. This didn’t affect my motivation.

I was not participating in ordinary classes in school and raising the bet every day. I went to school from 7 AM till 10 PM, not participating in the classes but instead, I went to the site (the room in the school where computers are located). I went there to study, but there was a problem. Sometimes, we played games, and sometimes a lot. It had two reasons: colleagues and myself. I sometimes felt low motivation. I think the main reason was the lack of a mentor. When you don’t have someone that monitors you and tracks what you are doing, you lose motivation, and play games instead of studying, I think. Playing games didn’t only waste my time, but also made me less motivated and made my will weak. This is a black cycle, you waste your time, you lose motivation, you will become weaker, and you play more. I encountered this black cycle. I remember that sometimes I played for 5 hours. The game we played was Counter Strike 1.6.

I started studying for the next stage. I was taking exams for the previous years and I was good at them. Sometimes, I finished some of them with perfect scores. The second stage of INOI is about combinatorics and graphs. Sometimes it has algorithms too but everything is on paper. Because of this, in February I switched to studying theoretical topics (like counting) instead of coding.

One of the problems in the second stage of INOI, that year

The second stage was held in May (2015). I participated in the exam and I felt it was great. When we were exiting the exam hall, during a discussion, I realized that I missed a sentence in the first problem and missed 15 points. It was not a problem, the overall score was 300 and I thought my score would be still 149 and 15 points were not important. Anyway, the exam was finished. I felt that I’ll pass this stage as, in the previous years, the score for getting passed was something like 130 out of 300.

Again, I switched to coding. The playing issue was getting worse. I was trying to stop gaming and instead coding, but I was not successful. As you can see, I was losing ratings slowly at that time.

## Results published

Time passed, and publishing the results of the second stage was near. It took almost two months from the exam to the results being published. In the old times, channels on messengers were not popular. So you need to check the Iran National Olympiad website manually to know if the results are published or not. Students were refreshing the website each moment you know. I implemented a PHP code and ran an RSS server. RSS is somehow deprecated nowadays. My code fetched the website every minute and pushed a notification to all of the registered devices to the RSS server on changes. It was fun.

On 8th July 2015, I lost my grandmother. It was sudden. She was in the hospital for just 10 days and we lost her. Because I expected that I would be at the funeral for several days, I asked my friend, Alireza Tofighi (ATofighi) to call me when the results were published. On the 9th, at about 3 pm, AliReza called me. When he said “hello”, I got everything. He was trying to somehow help me in that sad situation. My name was not on the list of passed students. I said: “Please take a look at all the lists again and again”. But the answer was no, again. However, Alireza passed the exam.

I found an empty time slot, lied next to my grandmother's grave when no one was there and cried for a long time. As a fifteen years old boy it was my first defeat in my life, and it was so hard. I was unable to digest it. I thought of the time I waste playing games. I was remembering a quote: “The tears we shed after every failure are actually the sweat we didn't shed for success”.

Soon I got the details about my result. I scored 113 out of 300 on the exam, so much less than I expected. It was because I didn’t know “how to write”. I solved the problems, but my writing was not proper and I lost so many points in many problems. The passing score was 126 that year. I was sorrowful that if I read that sentence I would get accepted.

## Change it!

Suddenly, I decided to change the situation. It was a blind and unreachable idea at first. I thought that if I go to a better school, I can perform better next year. There are a few schools in Iran that have an olympiad department alongside normal students. Almost all of the medalists in every olympiad (informatics, math, physics, …) are from one of these schools. The two most known schools are AE high school and Allame Helli. In the schools with the olympiad department, the department holds olympiad-specific classes regularly. For example, in the informatics department, students have classes on algorithms, coding, combinatorics, and graphs. So their main focus is on their special classes, while they have minimal ordinary classes too.

I started to talk with Mehrdad Saberi Batman who did the same. He was studying in a non-popular school and switched to Allame Helli at that time. I talked to my family about this. At first, they become confused. It almost never happened in my town that somebody changes his high school. It was a very rare and strange thing. I started to explain why I need this. I’m happy that I had a family that always supported me. They started to think about it. My father clarified that he and my mother are working in our city and it’s impossible for them to migrate to Tehran (the capital, where good schools are located). He said: “I can support you and rent a house, but it’s impossible for us to migrate”.

Allame Helli high school

The process started. I asked for an official migration request from our school. I wanted to go to Allame Helli. To change my school, I needed to do a special routine in NODET (National Organization of Development of Exceptional Talents). NODET is an organization in Iran that takes care of talents before university. NODET has schools in some cities, depending on their population. There are ~600 NODET schools in Iran. A student can migrate from a NODET school to another in special cases. I was studying at NODET high school in Yazd and Allame Helli is one of the NODET schools in Tehran. Soon, my family and I went to Tehran to follow the migration process. The Allame Helli high school welcomed me. But the school's approval is not enough for migration, I needed NODET approval too.

NODET has ten high schools in Tehran. Allame Helli is one of them. Other schools have a big gap with Allame Helli. So I needed approval not only for migration to Tehran but also for getting into Allame Helli. I brightly remember when we (my parents and I) went to the NODET office to get approval. There was a non-friendly man. He was responsible for processing my case. I asked him if it’s possible to get into Allame Helli and he said: “See if you are allowed to enter Tehran or not!”. He meant we may even not accept you in any school in Tehran (what about Allame Helli). He humiliated me as a student studying in a small city.

Not only I but also my parents were so upset after we left his room. One of the staff there saw my father in that mental state and asked about the story. After my father described the story, he suggested we call Mr. Shahsavari. Shahsavari was (and currently is) the manager of the olympiad department of AE high school (which is a competitor school with Allame Helli). AE is not a school under NODET, it's a private high school. Soon, we contacted him. I told him that we can’t afford the huge amount of school costs. The cost of AE was three times the cost of Allame Helli and the cost of Allame Helli was three times the cost of my previous school. He kindly replied that we’ll help you.

## Last days in hometown

We went back to Yazd. The situation was almost clear: I was going to AE. A few days later, a strange thing happened: Someone from Allame Helli called my father. He welcomed and respectfully said that we resolved all things related to NODET and we’re ready for registration of your son. I don’t want to go deeper in this part and judge what happened. Anyway, I talked to several people about this and finally concluded to go to AE.

Still, the game problem was with me. I lost my rating and was under my maximum by 100 ratings. On the 25th of September 2015, in the afternoon, I played “Teeworlds” for the last time and removed it from my laptop. September 26th was my first day in my new school. I told myself that I’ll never come back to play and I’ll focus on studying as much as possible. I was changing…

• +167

By Arpa, history, 14 months ago,

Hello Codeforces, especially girls!

The second Europian Girls Olympiad of Informatics just finished. The competition was hosted by Turkey in Antalya. It was the first year this competition was held onsite. EGOI is somehow a girls' version of IOI because countries like Singapore and Peru participate in it too. 45 countries participated in EGOI 2022, while the number of countries participating in IOI is ~90.

I was part of the scientific committee of the competition. I found a great team around me.

From left to right: Fatma Basak Aydemir (Turkey, SC), Nils (Sweden, Problem Setter), Hakan (Turkey, SC), Cheng (China, Problem Setter), I (Iran, SC), Stanislaw (Poland, Problem Setter), Vlad (Romania, SC), Petr (Switzerland, Problem Setter). Tolga Can didn't attend on-site but he was the head scientific committee. Also, Fatih Damirci (head of the Turkey informatics olympiad) was the organizer of the event. He helped us (the Scientific Committee) in many ways.

The Turkish host did everything so that it couldn’t be possible to improve it. I’m wondering if some other country could bet them in the future. We stayed for a week in a 5-star hotel near the beach, two excursion days, and a boat trip. Here you can see what happened in EGOI 2022.

This year, we had more countries and also, stronger participants. Then we prepared a significant harder contest. To give an approximation, the problems were ranging between Div.2 D and Div.2 F.

The results are here. Duru from Turkey took the official first place and made the host very happy.

You can find solutions here (it’s possible that the subtasks don’t match). I'll add solutions for other problems soon. The problems will be soon online for practice.

Thanks to BanRussiaAtIOI the problems can be virtually upsolved here:

European Girls Olympiad in Informatics 2022. Day 1

European Girls Olympiad in Informatics 2022. Day 2

• +141

By Arpa, history, 14 months ago,

Hey Codeforces!

I’m AmirReza PourAkhavan, Codeforces Contest Coordinator. I let the story become complete and I’m sharing it now.

The story is about a 16-year competitive programmer, who left his family and migrated to another city alone to follow competitive programming. After seven years, he advanced to the International Collegiate Programming Contest World Finals, twice.

### Why I’m writing this

Six years ago someone asked me here to write my story. I think it can help you to never give up.

I've been doing competitive programming for ten years. I advanced to ICPC (International Collegiate Programming Contests) World Finals twice, in 2019 at Porto and 2020 at Moscow. At ICPC World Finals 2020, our team took high-honored place twenty-four, which is equal to the top 0.03% of 200k students participating in ICPC.

I am presenting in the ICPC World finals Porto, 2019: CP-connect, A problem recommender.

I am presenting in the ICPC World finals, Moscow 2020: Let the students grow (on successful teaching).

I was a tester, problem setter, editorialist, and contest coordinator at Codeforces, Topcoder, CodeChef, and HackerEarth, for five years. Also, I am (was) a judge at Africa and Arab Collegiate Programming Contest (super regional competition for ~70 countries) 2021, 2022, and European Girls Olympiad of Informatics (girls version of IOI) 2022.

I’ve solved ~3.7k problems on Codeforces, and ~5k problems overall. I have been teaching Algorithms, Data Structures, and competitive programming for ICPC and IOI for six years. I’m also a software engineer and algorithm designer at a company.

# How I started the competitive programming

I was 13 years old when I learned QBasic – a simple programming language. In 7th and 8th grade, I learned QBasic and VB at school. We had a competition in our middle school called B.M.M. (Best Programmer in School) (Yes it should be BPS, but it’s Persian). I took second place and it was a sad thing for me that I lost the competition to my friend and my competitor ATofighi.

In the 8th grade, we made a team and competed in the HelliNet Programming Contest which is the most known high-schooler competition in Iran. We took almost the last place. All participants received a simple big cup with the HelliNet logo. It was nice for me.

In the early 9th grade (Sep 2013), I became familiar with real competitive programming. I went to the olympiad. By olympiad, I mean the Iran National Olympiad of Informatics (INOI) specifically; and generally, the International Olympiad of Informatics.

I used to live in Yazd. Yazd is a city with ~500k population in Iran. As you may know, Tehran is the capital of Iran. Yazd is 700 km far from Tehran. Finding an olympiad teacher in Yazd was (and currently is) almost impossible. On the other hand, there were (and currently are) many professional olympiad teachers in Tehran. I was aware that I needed to pass the path alone.

A teacher (Seyed Hamed Sadat Hosseini) taught me C++ in the summer before 9th grade. He was my first teacher. I still meet him sometimes and I thank him for all his effort to help me start the path. I started learning Combinatorics, Graphs, and at the same time, Algorithms, Data Structures, and coding. I felt that I love competitive programming and the olympiad.

We were several olympiad-lover students, trying without a guide. We were going nowhere. Solving random problems on Codeforces and gaining and losing ratings at random. We had a teacher or two who held limited classes for us. I participated in classes, but most of my growth was on my own.

I didn’t participate in many regular school classes. Instead, I studied for the olympiad. Let me describe how the olympiad works in Iran.

### How INOI works

Students can participate in INOI two times: in the 10th grade and 11th grade. Each year, a season of INOI runs. Each season starts in about February and ends in September. It contains several stages. In the past 9th grade students could participate in the first two stages just to become familiar.

In the first stage, about 10k students participate and 1000 students pass. Then in the second stage, this number reduces to 80. These two stages are theoretical (combinatorics, graphs). Then we have a third stage, which is coding.

The forty students passing the third stage enter the summer camp. They review their knowledge and at last, they take several exams and they win medals. Gold medalists will be free to choose every major and every university to study in without participating in any exam and for free. Other students need to participate in an exam called Konkoor to get into university.

Silver and Bronze medallists have a huge bonus when participating in Konkoor. E.g. if a medalist took place 5000, it’s like that he took place 1000. Note that all of the expenses of students studying in top universities (top ~100k students) in Iran are covered by the government.

Let's get back to the story. Studying for the olympiad instead of Konkoor is a risk. Why? Because if someone fails in the olympiad, he’ll have just one year (12th grade) to get prepared for Konkoor, while others try for 3, or 4 years. I was taking a risk. In February 2014, I participated in the first stage of INOI and passed with a high grade. It was a good start. I was very happy. You can see that my rating was pupil at that time. Again, I and Alireza (ATofighi) participated in HelliNet. We took place ~15. I got my first T-shirt in that competition.

I experienced a high rating loss at the end of the 9th grade. At that time I didn’t know any algorithm/data structure. I knew combinatorics (counting, simple induction, ...) and was able to solve simple graph theory problems. I started 10th grade with a rating of 1057, Newbie.

To be continued...

UPD: Read the next part here.

• +261

By Arpa, history, 23 months ago,

Hello Codeforces!

I'm glad to write a tutorial post again after several years (you can find old tutorials in my blog posts). I'm here to present an implementation for an algorithm that calculates inclusion hierarchy among circles. The main article can be found here. The repository where the implementation can be found is here. If you want to play, it has a python GUI too.

# The problem

Consider $n$ non-intersecting circles. Some circles can be inside of others. We need to make a tree of these $n$ circles such that if $i$-th circle is inside of $j$-th circle, the $i$-th vertex be in the subtree of $j$-th vertex. For example:

Examples

The black vertex is the whole surface itself.

# Algorithm description summary

Move the sweep-line from left to right. At each $x$, the sweep-line intersects with some circles in some segments of $y$. These segments are non-intersecting but some of them could be inside of other ones. We need to dynamically keep the order of these segments in our set (e.g. std::set in C++) and when sweep-line sees a new circle, we can find the parent of this circle in the set using a binary search (lower_bound in C++).

Time complexity is $\mathcal{O}(n \log n)$. You can find the details in the main article or the implementation.

This was my Bachelor's project, you can see the full project here.

• +65

By Arpa, history, 2 years ago,

Hi!

CLIS (Competitive Learning Institute Symposium) is one of the programs at ICPC World Finals every year. As you know ICPC World Finals '20 is going to be held in ~2 weeks in Moscow. I had two proposals for the symposium that both accepted. Abstract of one of them goes as follow:

We're not good in our jobs?

Peter Norvig: "One thing that I can share that was surprising to me is: being a winner of one of these programming contests was actually a negative factor for performing well on the job.",
What does it mean? We're performing badly on our jobs? If so, why?
In this presentation, I'm going to take a survey of competitive programmers on their job.

• As a teacher, how to make CP as close as possible to the job?
• What happens in CP and what happens on the job, why they are different?
• What're the main abilities that CP makes them grow and what are the abilities needed on the job?
• Is the salary of competitive programmers more than others after several years?
• Which technologies (e. g. Networking, AI, IoT) are more close to CP?
• What are the most important negative factors of competitive programmers, in sight of their managers on their job?
I'll do several interviews with old competitive programmers who are doing their job good and ask for their experience for better presentation.

As here is the biggest competitive programming community, can you please share your experience with me? For example,

• If you were a competitive programmer and you're now working in a company, which abilities you're using from CP?
• If you're a human resource specialist, can you please answer this question: Is the salary of competitive programmers more than others after several years?
• If you're a team lead and have someone in your team that is a competitive programmer, how do you evaluate him? Are you satisfied?

PS. If you're a WF attendee, I'll be very thankful if you attend my presentation.

Update. The presentation is over. You can download the slides and watch the presentation.

• +118

By Arpa, history, 2 years ago,

Hi.

I recommend everyone to participate in Iranian Combinatorics Olympiad.

• -17

By Arpa, history, 3 years ago,

Hi!

Check out my interview with Natalia.

• +41

By Arpa, history, 3 years ago,

Hello Codeforces!

Every month, there will be a problem with complete explanations and solutions for one of the month's problems. Here is the problem of February. Feel free to ask me questions and suggesting edits.

Please help me by proposing a problem for the next month. In the November contests, look for a challenging problem that you would like to have complete explanations of it.

Also, what do you think about video tutorials instead of text editorial?

• +1

By Arpa, history, 3 years ago,

Yes! I’m back with the problem of the month series, hosted by Topcoder.

Every month, there will be a problem with complete explanations and solutions for one of the problems of the month. Here is the problem of October. Feel free to ask me questions and suggesting edits.

Help me by proposing a problem for the next month. In the November contests, look for a challenging problem that you would like to have complete explanations of it.

• +28

By Arpa, history, 3 years ago,

Hello, Codeforces community!

I am very proud to announce SRM 787 is underway, authored by me. The contest will start today at 16:00 UTC.

It is my third experience in holding a contest at Topcoder. Holding contests on Topcoder is always memorable, having misof as contest coordinator and hmehta as a kind helper, it can't be nice more. Although struggling with Java and MPSQAS is not easy, being with a kind and professional team makes it sweet. So thank you Misof and Harshit! Also, Misof tested the contest.

Problem stories are all about my honorable mighty teacher, Abolfazl Asadi, who is currently doing great in teaching students and preparing them for INOI (Iran National Olympiad of Informatics). You will know him in problem statements as "Aqa Asadi". "Aqa" means "Sir" in Persian.

I can't skip thanking my dear friend Javad javaD Karimi, who proposed the idea of Div. 1 Easy.

P. S. Please note that the coding phase will begin at 16:05 UTC but the registration will still close at 15:55 UTC.

Good luck to everyone!

• -10

By Arpa, history, 4 years ago,

I'm honored to introduce you to the article series, Arpa's problem of the month, hosted by Topcoder.

Every month, there will be a problem with complete explanations and solutions for one of the problems of the month. Here is the problem of April. Feel free to ask me questions and suggesting edits.

Help me by proposing a problem for the next month. In the May contests, look for a challenging problem that you would like to have complete explanations of it.

P. S. "Arpa's problem of April" is something rhythmic, isn't it?

• +6

By Arpa, history, 4 years ago,

• +13

By Arpa, history, 4 years ago,

• +19

By Arpa, history, 4 years ago,

Hi, Codeforces community.

Today is the first day of the Persian new year (1399), we call it Nowruz. I wish everyone bug-less codes, high ratings, branded T-shirts, and, successful hacks. Also, I hope no one gets failed on system testing, no hacks after locking, and no tiredness of coding.

I'd like to finish the post with a poem:

 برآمد باد صبح و بوی نوروزبه کام دوستان و بخت پیروزنکویی کن که دولت بینی از بختمبر فرمان بدگوی بدآموز

Translation:

The morning breeze and Nowrooz (new year) scent have started to blow,

Onto the friends' desire and the triumphant fortune,

Do good deeds to get goods from the world,

Don't obey malicious people.

• +89

By Arpa, history, 4 years ago,

• +14

By Arpa, history, 4 years ago,

• -8

By Arpa, history, 4 years ago,

Hi.

I used this blog and created a user list of ICPC World Finals 2020 participants. Here is the link.

For example, you can use it for filtering the scoreboards. Here is the filtered scoreboard of yesterday's contest.

• +56

By Arpa, history, 4 years ago,

Hi.

Here is the link to the editorial. Feel free to discuss problems here and ask me questions.

• +1

By Arpa, history, 4 years ago,

Hi.

Here is the link to the editorial. Feel free to discuss problems here and ask me questions.

• +13

By Arpa, history, 4 years ago,

UPDATE: I'm no longer contest coordinator at HackerEarth, contact [email protected] for proposing problems

Hi.

Check this blog at the first. We've modified our problem selection process. Now you can use this form to submit ideas. If you submitted a problem on Ninja-Setters, send it again through this form, I can't access Ninja-Setters anymore.

Still, we need approximation problems (although it doesn't mean we don't need other problems), please submit them if you have any.

If you have questions, please send an email to me ([email protected]) or ask in the comments. Please do not message me here.

• +9

By Arpa, history, 4 years ago,

Hi!

I'm here to introduce a new series of contests on HackerEarth, Data Structures and Algorithms (DSA) coding challenge! In this series, you will have to solve 3 problems in 1.5 hours.

The problems are classic and educational as against being creative and challenging. So, if you're learning new things, don't miss the DSA contests. These contests are similar to Codeforces Educational rounds.

We have hard problems and easy problems in this contest. After the contest, don't forget to upsolve! This will help you a lot.

The next DSA contest is on September 14, 4 AM UTC.

Authors are Devarshi (devarshi09) Khanna, Prakash (forgotter) Jha, and, Aditya (aditya123garg) Garg. I'm the tester of the round.

GL & HF!

• +30

By Arpa, history, 4 years ago,

UPDATE: I'm no longer contest coordinator at HackerEarth, contact [email protected] for proposing problems

Hi everyone.

I want to describe the process to become a problem setter on HackerEarth. I'm eager to see new problem setters want to prepare contests. It's a great experience for every coder to hold a contest at least once. The first time when I prepared a contest (I was fifteen at that time, a high schooler student!) it was so sweet for me that I continued preparing problems on Codeforces, CodeChef, HackerEarth, Quera, Iran Olympiad of Informatics Finals and several more. Then I worked for 1.5 years in Quera as the contest coordinator, which was great. I'm continuing my job — Contest Coordinating — on HackerEarth from January.

We have three algorithmic contest every month, here is the table:

Contest Number of problems Approximate Difficulty Length Comments
Easy 6 Like Codeforces Div. 2 3 Hours
DS and Algo challenge 3 Easy to Medium-Hard 1.5 Hour
Circuits 8 One approximate problem and 7 algorithmic, from Very-Easy to Hard 9 Days More educational, less competitive, we could use classical problems

As you can see, we need a lot of problems every month. To propose a problem, follow this instruction:

• Register on Ninja Setters platform. where you can write your proposal.
• I'll check your problem soon. If approved, you should prepare test cases, solution.
• We'll have you in a contest!

Our proposal queue is almost empty, so if you propose a problem today, with a high probability, your problem will be used in August contests. Here is the compensation table:

 S. No. Difficulty level Indian setters (INR) International setters (USD) 1 Very Easy 1600 23 2 Easy 2300 35 3 Easy-Medium 3000 45 4 Medium 4700 70 5 Medium-Hard 6000 90 6 Hard 8000 120 7 Approx. 8000 120

P. S. You don't need to prepare the whole contest. A contest may have many setters, so even if you send one problem, it's welcomed.

P. S. We need an approximation problem every month. Propose it if you have some. Check the last Circuits contest for an example.

Update. It's not needed to send me a message when you register on Ninja Setters, just wait for several days, I'll add you to group such that you can start proposing problems.

Update. Users with rating less than 1600 can propose problems but the probability of acceptance is low.

• +55