E869120's blog

By E869120, 4 days ago, In English

Hello, CodeForces!

Today, I would like to discuss about an issue of IOI 2025 venue. The venue of IOI 2025 is still not officially announced, but according to the website, IOI 2025 will be held in La Paz, Bolivia.

1

As you know, La Paz is one of the highest cities in the world. For example, the center of La Paz is at 3600 meters above the sea level, and El Alto International Airport, which is the nearest large airport from La Paz, is at 4100 meters above the sea level. Therefore, altitude sickness can be a big concern. I think that even the following things can happen:

  • 20% of the contestants collapsed at the airport, and they were even unable to reach hotels
  • 30% of the contestants collapsed during hotel stay, opening ceremony, practice sessions and excursions, and they were unable to participate in the contest
  • The remaining 50% were barely able to participate in the contest, but most of them performed very badly because of lack of oxygen
  • Only 10% were able to perform at the level of their skill, and gold medalist were almost determined among them. Many LGMs, IGMs and GMs made blunders in the contest, and the biggest upset in IOI history occured

If I were an IOI 2025 participant, I have a strong confidence that I could not even get a bronze medal because I often suffer altitude sickness at 2500 meters above the sea level.


In addition, as an alumni of Japanese Olympiad in Informatics (JOI), I am very worrying about the possibility that IOI 2025 Japan team cannot participate in the contest or cannot perform well. I also think that many other countries have the same concern — because most of the countries are low-elevated, like altitude of 100 meters or 200 meters.

Are there any tips or any ways of practice to get used to high altitude?

Full text and comments »

  • Vote: I like it
  • +403
  • Vote: I do not like it

By E869120, 5 weeks ago, In English

Hello, everyone!

Japanese Olympiad in Informatics (JOI) Spring Training 2024 will be held from March 21 to March 24. There are 4 days in the contest.

The duration of the contest is 5 hours, but you can start any time in 22-hour window. Note that if you start competing after 19:00 GMT, the contest ends at 24:00 GMT and you cannot compete 5 full hours. For example, if you start competing at 21:00 GMT, the contest will be shortened to 3 hours.


The contest information is as follows. Details are available in contest page.

  • Number of problems for each contest: 3-4 problems
  • Max Score for each task: 100 points
  • Style: IOI-Style (There may be some partial scores)
  • Problem Statement: Japanese & English
  • There may be some unusual task (e.g. output-only task, communication task) like IOI

Note that from this year, you can submit with C++20.


The registration page and live scoreboard will be announced 10 minutes before the contest.

We welcome all participants. Good luck and have fun!

UPD1: The contest will start in 10 hours.
UPD2: Contest Day1 is started.
UPD3: Contest Day1 is finished. Now you can discuss Day1 problems.
UPD4: Due to technical issue, the contest Day2 will be delayed by about 1 hour.
UPD5: Contest Day2 is started.
UPD6: Contest Day2 is finished. Now you can discuss Day2 problems.
UPD7: Contest Day3 is started.
UPD8: Contest Day3 is finished. Now you can discuss Day3 problems.
UPD9: Contest Day4 is started.
UPD10: Contest Day4 is finished and now the entire series of contests is ended. Thank you for your participation.

Full text and comments »

Tags joi, ioi
  • Vote: I like it
  • +359
  • Vote: I do not like it

By E869120, 3 months ago, In English

Hello, everyone!

The 23nd Japanese Olympiad in Informatics (JOI 2023/2024) Final Round will be held from Sunday, February 04th, 10:00 UTC to Monday, February 05th, 10:00 UTC. The contest information is as follows:

  • Contest duration: 4 hours (You can choose start time freely in 24-hour window)
  • Number of tasks: 5 tasks
  • Max score for each task: 100 points
  • Style: IOI-Style (There may be some partial scores)
  • Problem Statement: Japanese & English

Note that since the contest ends at Monday, February 05th, 10:00 UTC, if you start the contest after Monday, February 05th, 06:00 UTC, the duration will be shorter than 4 hours.

The registration page and live scoreboard will be announced 30 minutes before the contest starts. Details are available in the contest information page.

We welcome all participants. Good luck and have fun!

UPD1: The contest will start in 24 hours.
UPD2: Now the contest is started, so good luck and have fun. Note that you can start any time in 24-hour window.
UPD3: The contest is ended. Thank you for your participation.

Full text and comments »

Tags joi, ioi
  • Vote: I like it
  • +290
  • Vote: I do not like it

By E869120, 6 months ago, In English

Hello CodeForces!

Recently, I am thinking about the resubmission strategy in CodeForces. Last week I participated in CodeForces Round #905 (Div.1), and I successfully solved first 4 problem with ~10 minutes remaining. However, after that, I saw the pretest result again and I noticed that execution time of problem C was 2979/3000ms.

Then I decided to speed up the solution of problem C and finally resubmitted just a few seconds before the contest ends. The execution time in pretest was shortened to 2464ms, and all of my solution passed in system test.

But the biggest blunder in this contest was resubmission — the number of testcases in pretest and system test was almost the same, and even my solution before resubmission passed (I confirmed after the contest). Since the score is mainly determined by submission time, my final rank in the contest dropped from ~60th to ~100th, and this made a difference between rating increase almost increase (UPD: miscalculated) and decrease.


So now I would like to ask everyone about resubmission strategy. There are some cases which may require resubmission in CodeForces, like as follows:

  • My initial solution was not proved yet, and I found another proved solution
  • I found a counter-example of my solution
  • My solution is very close to time limit

But when will you decide the resubmission? I am very appreciate for sharing your opinion.
Thank you for reading this blog.

Full text and comments »

  • Vote: I like it
  • +106
  • Vote: I do not like it

By E869120, 9 months ago, In English

Hello everyone!

JOI Open Contest 2023 will be held from Saturday, August 5, 04:00 UTC to Sunday, August 6, 04:00 UTC. You can start any time and the duration is basically 5 hours. Note that the duration becomes shorter if you start after Saturday, August 5, 23:00 UTC, i.e. less than 5 hours before the contest ends.

There will be 3 tasks, and the maximum score for each task is 100 points. Since this is an IOI-style contest, there may be some subtasks. Each submitted source program must be written only in C++. Problem statements will be provided both in Japanese and in English. You can find more details in the contest page.

Past contests are also available in this page, and you can test your code in oj.uz website.

Good luck and have fun!

Full text and comments »

  • Vote: I like it
  • +229
  • Vote: I do not like it

By E869120, 13 months ago, In English

Hello, everyone!

Japanese Olympiad in Informatics (JOI) Spring Camp 2023 will be held from March 19 to March 22. There are 4 days in this contest.

The duration of the contest is 5 hours. You can choose start time from specified range freely. Please note that if you start competing after 19:00 GMT, the contest ends at 24:00 GMT (and it means the duration is less than 5 hours). For example, if you start competing at 22:00 GMT, the duration is 2 hours.

The contest information is as follows. Details are available in contest page.

  • Number of problems in each day: 3 or 4 problems
  • Max score for each task: 100 points
  • Style: IOI-Style (There may be some partial scores)
  • Problem statement: Japanese & English
  • There may be some unusual tasks (e.g. output-only task, communication task, reactive task) like IOI

The registration page and live scoreboard will be announced 10 minutes before the contest.

We welcome all participants. Good luck and have fun!

Full text and comments »

Tags joi, ioi
  • Vote: I like it
  • +304
  • Vote: I do not like it

By E869120, 14 months ago, In English

Hello, everyone!

The 22nd Japanese Olympiad in Informatics (JOI 2022/2023) Final Round will be held from Sunday, February 12th, 10:00 UTC to Monday, February 13th, 10:00 UTC. The contest information is as follows:

  • Contest duration: 4 hours (You can choose start time freely in 24-hour window)
  • Number of tasks: 5 tasks
  • Max score for each task: 100 points
  • Style: IOI-Style (There may be some partial scores)
  • Problem Statement: Japanese & English

Note that since the contest ends at Monday, February 13th, 10:00 UTC, if you start the contest after Monday, February 13th, 06:00 UTC, the duration will be shorter than 4 hours.

The registration page will be announced 30 minutes before the contest starts. Details are available in the contest information page.

We welcome all participants. Good luck and have fun!

Full text and comments »

Tags joi, ioi
  • Vote: I like it
  • +237
  • Vote: I do not like it

By E869120, 22 months ago, In English

Hello everyone!

JOI Open Contest 2022 will be held from Sunday, July 3, 04:00 UTC to Monday, July 4, 04:00 UTC. You can start any time and the duration is basically 5 hours. Note that the duration becomes shorter if you start after Sunday, July 3, 23:00 UTC, i.e. less than 5 hours before the contest ends.

There will be 3 tasks, and the maximum score for each task is 100 points. Since this is an IOI-style contest, there may be some subtasks. Each submitted source program must be written only in C++. Problem statements will be provided both in Japanese and in English. You can find more details in the contest page.

Past contests are also available in this page, and you can test your code in oj.uz website.

Good luck and have fun!

Full text and comments »

  • Vote: I like it
  • +107
  • Vote: I do not like it

By E869120, 2 years ago, In English

Hello, everyone!

Japanese Olympiad in Informatics (JOI) Spring Camp 2022 will be held from March 20 to March 23. There are 4 days in this contest.

The duration of the contest is 5 hours. You can choose start time from specified range freely. Please note that if you start competing after 19:00 GMT, the contest ends at 24:00 GMT (and it means the duration is less than 5 hours). For example, if you start competing at 21:00 GMT, the duration is 3 hours.

The contest information is as follows. Details are available in contest page.

  • Number of problems in each day: 3 or 4 problems
  • Max score for each task: 100 points
  • Style: IOI-Style (There may be some partial scores)
  • Problem statement: Japanese & English
  • There may be some unusual tasks (e.g. output-only task, communication task, reactive task) like IOI

The registration page and live scoreboard will be announced 10 minutes before the contest.

We welcome all participants. Good luck and have fun!

Full text and comments »

Tags joi, ioi
  • Vote: I like it
  • +347
  • Vote: I do not like it

By E869120, 2 years ago, In English

Hello, everyone!

The 21st Japanese Olympiad in Informatics (JOI 2021/2022) Final Round Online Contest will be held from February 13, 07:00 GMT to February 13, 11:00 GMT. The contest information is as follows:

  • Contest duration: 4 hours
  • Number of problems: 5 problems
  • Max score for each task: 100 points
  • Style: IOI-Style (There may be some partial scores)
  • Problem statement: Japanese & English

The registration page will be announced 10 minutes (Fixed) before the contest start. Details are available in the contest information page.

We welcome all participants. Good luck and have fun!

Full text and comments »

Tags joi, ioi
  • Vote: I like it
  • +211
  • Vote: I do not like it

By E869120, 3 years ago, In English

Hello everyone!

JOI Open Contest 2021 will be held from Sunday, June 6, 04:00 UTC to Monday, June 7, 04:00 UTC. You can start any time and the duration is basically 5 hours. Note that the duration becomes shorter if you start after Sunday, June 6, 23:00 UTC, i.e. less than 5 hours before the contest ends.

There will be 3 tasks, and the maximum score for each task is 100 points. Since this is an IOI-style contest, there may be some subtasks. Each submitted source program must be written only in C++. Problem statements will be provided both in Japanese and in English. You can find more details in the contest page.

Past contests are also available in this page, and you can test your code in oj.uz website.

Good luck and have fun!

Full text and comments »

  • Vote: I like it
  • +210
  • Vote: I do not like it

By E869120, 5 years ago, In English

Dear Codeforces community.
According to IOI 2019 Results, I got the 25th place and got successful gold medals twice in a row.
Although it was pretty close to the gold-medal border (only 6.14pts / 600 difference) and it was lower performance than IOI 2018, which I participated when I was orange in Codeforces, I had many chances to get more points in this IOI, even for top 10. Since there are not so many people who have got two gold medals in IOI (and there were many requests like "I want E869120 to talk about how to get gold in IOI" like this comment and this comment). I want to write something about IOI, which may be useful for people who will participate in IOI next year and also some years later.


A. First of all

At first, I want to write some premise to avoid comments like "I hate this post because I have no ties to IOI at all", or "How can I get gold with a 10-day practice from gray coder?". This blog is for people who want to improve skills in IOI (or national selection camp), and also for people who want to teach people practicing for IOI. But, even if you are not familiar with IOI, you may gain benefit by reading this post, because there is a little correlation between IOI and Codeforces. :)
So, let's move on to the main subject.

I think that the minimum requirement needed to be a gold/silver medalist is as follows:

  1. Know famous algorithms like segment tree, union find, set, map, sqrt decomposition, Convex Hull Trick, suffix array, Dijkstra method, minimum spanning tree, Euler tour of a tree, divide and conquer, binary search, etc. Are there any algorithms that you have not yet understood among I stated above? If there are, please check and understand the algorithms.
  2. Have skills equivalent to rating 2200+ (for silver I think it is 1800+) in Codeforces. Even if you know a lot of algorithms, if you have no skills to think algorithms and implementation, you cannot solve a problem like Shoes, or 40pts of split. If you want to gain Codeforces / competitive programming skills, let's read another post.
  3. Understand how to solve interactive problems and output-only problems. If you are not familiar with interactive / output only problems, you should see past problems.
  4. Be good at speed-solving. To get many subtasks or partial scores, fast implementation is needed. I will write about how to improve speed-solving skills which are useful in IOI in this blog.
  5. Have a good strategy. I think that strategy is the most important part of IOI. I will write about an example of a good strategy in this blog.
  6. Be able to sustain maximum concentration and performance for 5 hours. I will write about a way to improve concentration by practicing in this blog.
  7. Be mentally strong and don't give up your hope from the first second of the contest to the last second of the contest no matter what happens. I will write about my way to get an unbeatable mind that can fight in IOI in this blog.

B. My concept about IOI

Some people said that "What is important for IOI is to gain skills to solve difficult problems by thinking long hours" in this comment. Yes, it is important for me, who aims top5 or top1 in IOI next year, or in some contest which there are not so many subtasks like Japanese national team selection camp. But I think that it's a bit different for people whose goal is "silver" or "gold" in IOI.



Solve all the subtasks that you can gain with your skills within 5 hours is very important. Some people think like "5 hours? Too long. It is 2.5x longer than normal Codeforces round! I'm sure that I can solve all the subtasks that I can gain". But it's not as easy as it sounds — because IOI has a lot of subtasks, mainly they are implementation-heavy. For example, problem vision has 8 subtasks! For a problem which has many subtasks, if you have a strategy like "First, implement the solution of $$$N \leq 300$$$ which I can find the solution within a minute. Second, think 10 minutes for the next subtask and implement the solution for $$$N \leq 5 \ 000$$$. Third, think 10 more minutes and solve in a special case for $$$A_i \leq 10$$$. Fourth, think the solution of the full score, which the constraint is $$$N \leq 100 \ 000$$$.", you have no time get all implementation done if you have no skills of speed-solving!

So, let's see statistics to see how much "not losing points" and "speed-solving" are important for IOI. Think about two cases down below.

(i) Suppose you solved all the subtasks which 110 or more people got in each year's IOI

Year Day1 P1 Day1 P2 Day1 P3 Day2 P1 Day2 P2 Day2 P3 Total Score Final Rank Medal
IOI 2019 100 40 50 53 66 24 333 77/327 Silver :)
IOI 2018 100 17 49 53 12 36 267 87/335 5 pts to Silver
IOI 2017 31 20 11 90 13 50 215 102/304 34 pts to Silver
IOI 2016 100 34 23 90 38 16 301 94/308 27 pts to Silver
So, to get silver, it seems like "solving all the subtasks which are solved by 110+ people" and "solving at least a single subtask which is solved by 60-100 people" are needed. So, how about gold?

(ii) Suppose you solved all the subtasks which 45 or more people got in each year's IOI
Year Day1 P1 Day1 P2 Day1 P3 Day2 P1 Day2 P2 Day2 P3 Total Score Final Rank Medal
IOI 2019 100 40 72 71 100 24 407 31/327 7 pts to Gold
IOI 2018 100 37 49 86 51 36 359 19/335 Gold :)
IOI 2017 83 100 27 97 51 50 408 10/304 Gold :)
IOI 2016 100 34 31 100 100 60 425 22/308 Gold :)
So, to get gold, it seems like "solving all the subtasks which are solved by 45+ people" is all you need. Note that the task order is the same as the IOI official results page for each year. (example) Also, since I could not get any information about what subtask did each person get, "the score when you got all the subtask which solved by 110+ people" is calculated as the 110th score for each problem. Same for the 45th.

So, how difficult is the subtask which can be solved by 110 people, or 45 people?
My opinion is this:

  • 110 people: Same as Codeforces difficulty 2100. If you are purple, you should solve within ~70 minutes. If you are orange, you should solve within ~40 minutes (since for many problems in IOI, implementation is heavy)
  • 45 people: Same as Codeforces difficulty 2600. If you are blue, almost impossible to solve. If you are orange, you should solve within ~2 hours. If you are red, you should solve within ~1.3 hours.

In conclusion, I think that not losing a point and speed-solving are very important parts of IOI, for people who aim to get a silver or gold medal.

C. How to practice speed solving?

As I stated above, I think that practicing speed-solving is a very important part of IOI. So how can you improve speed-solving?

Basis
If you think that you take too much time to solve Codeforces Div2 A, B or C problems (e.g. 4 minutes for Div2A, 8 minutes for Div2B, 15 minutes for Div2C if you are orange. ~1.5x for purple, ~2x for blue.), you should solve AtCoder Beginner Contest problems. My recommendation to gain fundamental skills is to solve 300pts or 400pts problems in AtCoder. Since AtCoder has many problems, you can practice a lot. I also think that doing a virtual contest is also important. That's because virtual contest makes you concentrate. When I was 8th grader, I made a virtual contest, which I selected ~5 problems from AtCoder whose difficulties are 300-400pts and tried to solve them within ~1 hour.

Practicing Speed Solving for IOI
I think that you can do two things to practice speed solving for IOI.

  • One is doing a virtual contest or IOI-like contest. If you do one or two virtual contests, you may realize how important speed solving is. (If you don't, you should read about my strategy of IOI, which led me to the stable acquisition of gold medals. Then, let's do one more virtual IOI-like contest with using my strategy.) There are a lot of IOI-like contests, for example, International Olympiad in Informatics (IOI), Japanese Olympiad in Informatics (JOI), Central European Olympiad in Informatics (CEOI), Baltic Olympiad in Informatics (BOI), info(1) cup, etc. So, you can do many IOI-like contests. I recommend doing this one at first.
  • Another one is solving ICPC problems with a clock/timer. Since many ICPC-problems are implementation-heavy and also most of the problems require some algorithms (≅ not ad-hoc problems) to solve them, you can also gain speed-solving skills which are vital for IOI. Unfortunately, most of the problems in the ICPC World Finals are very difficult. So, you can solve problems for regional contests or national qualification round. But how can you find the problems? For example, AIZU ONLINE JUDGE has a lot of ICPC problems. Also, if you want to practice speed-solving in AIZU ONLINE JUDGE, solving problem from PC Koshien (PCK) is a good idea. Both for ICPC and PCK, if you have no time to solve all of them, I recommend solving new one. If you did virtual contests of most of the IOI-like contest, or if you solved many IOI-like problems, it may be a good idea to do this.
  • If you want to get a gold/silver medal in IOI, you should do virtual contests of at least 5 recent years of IOI. With virtual contests, you can gain not only speed-solving skills that you can solve many subtasks within a short time but also your strategy of IOI.

D. My strategy of IOI

Firstly, my strategy is for people who have high-level skills in speed-solving. If you are not good at speed-solving and want to follow my strategy, you should read the previous section: "How to practice speed-solving?".
In addition, my strategy will not work for people who want to aim absolute winner. I think that getting absolute winner in IOI needs to take much risks.
I will explain in two parts: "base strategy" and "additional strategy".

Base strategy of IOI 2018
(i) First 1/2 of the contest
In the first half, I use ~50 minutes for each problem. For example, from 0:00 to 0:50, solve Problem 1. Then from 0:50 to 1:40, solve Problem 2. Finally, from 1:40 to 2:30, solve problem 3. For each problem, I did a strategy like this:

  1. Read problem for 2 minutes.
  2. Think of the solution for 3 minutes.
  3. Implement the solution and get all subtasks which I find the solution within 3 minutes. For me, the implementation takes 5-20 minutes.
  4. Think of the solution for 10 more minutes.
  5. If I could not find any better solutions, give up this problem and move on to the next problem. If I could find a better solution, implement it. If the implementation is heavy, it takes more than 50 minutes in total of this process. In this case, the duration that I can put on the second part will be reduced.

(ii) Second 1/2 of the contest
I try to find the easier subtasks among remaining and solve (or give up) them. Though it depends on how much time is remaining and the number of remaining problems, usually when I think for 50-60 minutes and cannot reach any of the solutions, I will give up the problem and choose another one. But how do I find the easier subtasks? The hint is on the scoring:
  • Mainly, if the scoring is very rough (e.g. Subtask #1: 5pts, Subtask #2: 10pts, Subtask #3: 35pts, Subtask #4: 50pts), the problem (full solution) is easy. It is true for IOI 2018 Combo, IOI 2015 Boxes with Souvenirs, IOI 2019 Shoes. Their subtasks’ scores are mostly multiple of 5. Conversely, if the scoring is not very rough, the problem is not so easy.
  • If the score of the last subtask is big (e.g. 40pts or more), the full solution of this task is usually very difficult. Though problem IOI 2017 Wiring is not so difficult while the last subtask is big, most of the problems whose last subtask’s score is big tend to be difficult in IOI. There are some examples: IOI 2019 Split, IOI 2019 Walk, IOI 2018 Meetings, IOI 2017 Toy Train.
  • If the scoring of the first subtask is low and relatively difficult, the full solution is likely to be difficult. For example, if the first subtask can be solved by just using if-statement and you can get 10pts, this problem is likely to be easy. Conversely, if the first subtask requires writing 100+ lines brute force and you get only 7pts, that problem is likely to be difficult. For example, IOI 2019 Walk is a difficult-case example. But this is just a tendency and not always true — for example, in problem IOI 2015 Towns, though only 111 out of 321 people got positive scores, this problem is not too difficult — 7 people solved it.

By the way, I used a bit different strategy for IOI 2019. That's because there were some issues like these:
  • In Day1, in problem rectangle, the sample input in official zip file was wrong. (It was fixed after ~1 hour after the contest starts)
  • In Day1, from ~0:55 to ~1:05 (from the beginning of the contest), we could not be able to access to the judge server. (504 gateway timeout)
  • In Day2, we could not download zip file because of the initial setting of PC (zip file was downloaded to root directory, where the contestant didn’t have access to), so I could not use PC for the first 15 minutes (after I raised my hand and called a staff, the problem on my PC was fixed)
  • Since most of the contestant (I think all) suffered from the previous problem, 40 minutes after the contest starts, all contestants’ PCs were restarted.

Since I could not gain many scores in the first 1 hour because of the issue, I changed the strategy a bit:
  • For the first 80 minutes, I got some subtasks of the problem which I thought the full solution was the most difficult. (In Day1, since I felt that split was easier than rectangle then, I attempted rectangle at first)
  • For the next 20 minutes, I solved some subtasks which were obvious, for the problem which I thought the full solution was the easiest.
  • Next, since I thought that getting at least one 100pts for each day was the key to winning a gold medal, I solved the easiest problem. (For day1 it took 60 minutes, and for day2 it took 95 minutes)
  • After getting 100pts, I got some subtasks of the remaining problem for 50 minutes. (For day2, since remaining time was already short, I used the all remaining time to solve output only task.)
  • If I had remaining time, I used the same strategy as IOI 2018 in the second half of the contest.

Additional strategy
On day2, there was an output only task. When I got 57pts of Problem 3 (walk), I had two choices: "Get 66pts on Problem 2 (vision) instead of getting 100, and get better score in output only task", or "Get 100pts on problem 2 (vision), and get lower score in output only task". I chose the second one because I thought that the key to winning was to get 100pts on problem vision. So, for each day, it’s important to ask yourself “what is the key to getting a gold medal?” in a critical moment.
Also, if you can estimate the border of gold, it is better. I think that you will be able to estimate the border of gold/silver if you solved past 5+ years IOI problems.

E. Results of strategy

In IOI 2019, I finally got the gold medal. But there is an interesting fact — in Day2, when just 2 minutes before the contest ends, I was in the silver-medal zone. My source code of output only bugged, while time is running out. In the contest duration 5:13:50 — I finished the debugging at 5:12:10, I submitted at 5:12:28 and 5:13:24, these submissions brought me to the gold medal. Unfortunately, I could not submit two more testcases. If I had time to submit them, my score might be 61pts. I also had an idea to get 85+ points in output-only tasks, so if I had time to implement it, I might have a chance to get ~10th place in IOI. But fortunately, I won a gold medal.
So, how I sustained my concentration for the whole 5 hours? How my mind was able to endure the last 5 minutes of IOI 2019? There is an effective way to gain concentration and mental toughness. I will explain in the next section.

F. How I succeeded to gain concentration and mental toughness

In IOI 2019, I got gold because of the last few seconds. But this action needs a lot of concentration and strong minds because it was one of the life-changing matches for me. Why did I succeed to gain such skills? Here is my way.

  • Do 10-hours virtual contest many times. It means double IOI. For example, choose six difficult IOI-like problems and get as many points as possible in 10 hours. Also, choose two-days IOI-like competition (e.g. CEOI) and solve them including day1 and day2 within 10 hours is OK. I did this kind of virtual contest for 4-5 times before IOI. If you do 10-hours virtual contest many times, you will get used to concentrating in long-hours contests. If you can concentrate in the 10-hours contest, it is sure that you can concentrate for 5 hours!
  • Know your limit and challenge to break your limit. One of the easiest ways to break your limit is real-marathon (running long distance) — because a lot of physical skills and mental skills are needed. For example, a week before a big competition (IOI or JOI selection camp), I run for ~20km as hard as I can. In the competition, I can think that "since nothing is harder than that running or real-marathon, I can do anything in IOI". Also, another advantage of running long distance before a big competition is that I can gain more physical strengths. Because 5 hours is long, if you have more physical strengths (especially endurance), there could be some advantage for you in IOI.

G. Conclusion

At first, I have to apologize for one thing — sorry for my poor English. If you have some trouble understanding my English, please write a comment and I will fix it. Thank you for your patience.
Lastly, I want to write some advice for challengers in Codeforces, based on my experience in IOI 2019.

  • Firstly, In International Olympiad in Informatics (IOI), some troubles may occur. It may be major problems like we cannot download the files. In Codeforces the round can be unrated, but in IOI the round cannot be unrated. So, your flexibility — ability to respond to the situation flexibly is important in IOI.
  • Secondly, in IOI and Codeforces, all seconds during competition have the same value. In the example of IOI, you have 5 hours. But the value of first 1 second in the contest, the value of 1 second just after 1 hour and 49 minutes has passed from the start of the contest, and the value of the last 1 second of the contest, are all the same. So, what is important is — don't waste even a single second in the contest. A person who makes light of a second loses. If you value every second during the contest and do everything you can during the limited time, you will win.
  • Lastly, though IOI competition lasts 10 hours including day1 and day2, it was at last 2 minutes I found the final bug, at last 82 seconds of the competition I entered the gold-medal zone, and at last 26 seconds of the competition, I made sure to get a gold medal. Sometimes this kind of things happen. The competition results will not be determined until the last minutes, the last second, and even the last 0.1 second. The person who never gives up until the last moment will win.

If you have some suggestions & comments & opinion & your strategy, please comment on my blog!
Thank you for reading!!!

Full text and comments »

  • Vote: I like it
  • +608
  • Vote: I do not like it

By E869120, 5 years ago, In English

Dear Codeforces community.
Finally red :)

Today, I want to share about some ways to practice competitive and gain your rating. I hope that this is helpful for those who is practicing competitive programming harder but rating is sluggish. There are 54,000+ people who participated in Codeforces contests actively, but sadly only a few people reach a red-ranked coders. For people who can't reach red, I will introduce my way to gain rating in some steps.

This blog is an extended and more detailed version of my previous tutorial blog, but 2 years and now are different. So there are many points that are different from blog which has written 2 years ago. Note: Some people who already read my previous tutorial blog may doubt, but do not doubt — I should say that the "from rating 1000 to 2000" part of this blog is not the copy of my previous blog and it's very different.

Since the size is very big, if I wrote contents to Codeforces blog directly, it might be too long. So, this time, I will share a 19-page PDF link of my tutorial blog. This time, my blog includes introduction, knowledge of some contests systems (AtCoder, TopCoder) and some convenient websites, some ways to practice for improve rating, and conclusion. Also, optimal practice method is differ by rating. So, this time, I will write in 4 steps: 1000 -> 1400, 1400 -> 1900, 1900 -> 2200, and 2200 -> 2400.



The link of my blog (PDF) is as follows:

[Tutorial] A way to practice competitive programming — from rating 1000 to 2400+


Please comment if you have suggestions, comments to my blog, and opinions on my way to practice.
Thank you for reading!

Full text and comments »

  • Vote: I like it
  • +607
  • Vote: I do not like it

By E869120, 5 years ago, In English

Hello, Codeforces!

Finally, the season of square869120Contest comes. I am filled with deep emotion when I think of the dawn of this contest :)

On April 14th, 20:00 JST, an innovative contest, square869120Contest #6 will be held. As usual, I'll invite everyone includes non-Japanese participants, and in previous contest, 20 non-Japanese participants joined in the contest. Hope in this year, much more will join :)

square869120Contest is a competition which is held by a twins: E869120 and square1001. This round is our sixth voluntary contest, counting from from our first round when we were 7-th grader. Now we are 11-th grader, but we are making much efforts to achieve continuous-growing of the contest, including some experience of writing problems of AtCoder Beginner Contests and others.



About square869120Contest (s8pc)
  • This contest is unrated and unofficial, and AtCoder doesn't have responsibility about the contents of the problems.
  • square869120Contest had been held 5 times before, and this is the 6th contest.
  • From 3rd contest, Both English and Japanese problem statements are prepared.
  • This contest is an IOI-style contest, and there are many partial scoring. It means even if you don't came up with a full-solution, to solve easier problem (e.g. lower constraints), you can get partial score. You can see previous square869120contests to know more about partial scorings.

Contest Information
  • Time: April 14th, 2019, 20:00 JST
  • Duration: 240 minutes
  • Number of tasks: 9 (Consists of 8 algorithm tasks and 1 marathon task)
  • Writer: E869120, square1001
  • Rated: No (unrated)
  • The first problem is as easy as (or possibly easier than) Codeforces Div2 A, and the last problem is as hard as Codeforces Div1-E. In addition, there are many partial scores. I think all participants can enjoy the contest.

Scoring
Problem A B C D E F G H I
Max. Score 200 300 400 600 800 1000 1200 1500 1500
  • Note: The last problem is a marathon-match-like optimization task.
  • Note: The max score of problem D has changed.





Past Problems

Feedbacks from participants of past s8pc participants
There 5 s8pc contests before. In cumulative total number of people, 1500 people registered in s8pc, and 876 people got 1 point or more, including 99 international participants. To some participants, I asked some impressions of s8pc, and some advice for newcomers.

yosupo (The winner in s8pc #5)
  • Since there are many kind of problems though the writers are same, s8pc is very fun contest!
  • But this contest is very consistent. For example, the last problem is always marathon-match like task.
  • Participate more!

WA_TLE (17th place in s8pc #4, runner-up in s8pc #5)
  • It was s8pc #4 when I first solved some problems by twins. At first, I wondered why they can make very good problems.
  • Actually, I am in good relationship with twins, as if I could think "we are triplets". s8pc problems are interesting!
  • Let's participate and enjoy!

zscoder (4th place in s8pc #4)
  • I think s8pc is a fun contest! The problems are interesting and also challenging. Some problems require interesting ideas to solve.
  • Also, there's the marathon problem every contest which looks interesting, though the time is probably too short for me to be able to work on it much considering that there are other hard problems to solve.
  • For newcomers, the problems also have many subtasks, and first half of problems are not so difficult. Thus you don't have to worry that you can't solve anything ;)

kotamanegi (13th place in s8pc #5)
  • In s8pc #5, because of proper difficulty and kind editorial, I learned very much in the contest!
  • I am very good at marathon-match like problem. For the problem "Collecting Gems in Fun" (the last problem of s8pc #5), as much as you think, as many point as you can get. This problem is very good for introducion of marathon-match.
  • Overall, s8pc is a high-level contest but enjoyable through many rating-clusters and many generations.
  • Let's participate in this contest!

Let's participate and have fun!


E869120, square1001

UPDATE

  • The max score of problem D has changed.
  • Finally, now, the contest will starts less than 24 hours. Participate more!
  • After the contest, let's discuss about the problems.
  • The contest is over. Unofficial Ranking and Statistics is now open!

Full text and comments »

  • Vote: I like it
  • +126
  • Vote: I do not like it

By E869120, 5 years ago, In English

Hello Codeforces!

Recently, in JOI 2018 Spring Camp, a young genius QCFium, wrote a naive $$$O(NQ)$$$ algorithm in the problem Examination, and got the perfect score. The code is as follows:

#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
//Naive Solution as follows...

I thought that it was very surprising, but actually, even $$$N,Q \leq 100,000$$$, with the only 3 lines $$$O(NQ)$$$ naive algorithm actually got accepted. To check whether this speedup is actually effective or not, I wrote these two codes: one is with the 3-line speedup, and the other is without the 3-line speedup.

Code A (With speedup)


Code B (Without speedup)


As a result, in custom innovation (code-test) in Codeforces, Code A used 2074ms but Code B used 2292ms. Code A is faster by ~10.5%. Actually, a young genius QCFium said "The more simple the code is, the more relatively faster with 3-line speedup." So, it could be possible that with speedup, the calculating speed becomes x1.2 or x1.5.

So I have some questions to the community.
Is it possible to use this speedup in CodeForces official contests?
And is it legal to use it in IOI selection contests in your country? (Actually in Japanese Olympiad in Inforcatics, it is OK to use this speedup)

I am very appreciate for sharing your opinion.
Thank you for reading this blog.

Full text and comments »

  • Vote: I like it
  • +47
  • Vote: I do not like it

By E869120, history, 6 years ago, In English

Hello, Codeforces!

On Saturday, Octorber 6th, 21:00 JST, AtCoder Beginner Contest 112 will be held.

The contest information is as follows:

  • Duration: 100 minutes
  • The number of problems: 4
  • Scoring: 100 — 200 — 300 — 400
  • Rated: Yes (for people whose rating is 1199 or lower)

Good luck and have fun!
Let's discuss about the problems after the contest.

UPDATE
1. The contest is over. Thank you for your participation.
2. Japanese editorial is published now. Editorial — Wait a moment for unofficial English editorial.

Full text and comments »

  • Vote: I like it
  • +20
  • Vote: I do not like it

By E869120, history, 6 years ago, In English

Dear Codeforces community.

AtCoder Beginner Contest 106 will be held at Saturday, August 18th, 21:00 JST.

Here is some contest informations:

  • The contest is rated for participants whose rating is 1199 or lower.
  • The writers are: E869120 and square1001. We are 16-years-old twin brothers :)
  • Duration is 100 minutes.
  • There are 4 tasks in this contest.

Let's participate and enjoy for this contest, and discuss the problems after the contest.
Good luck and have fun!
---
E869120, square1001

UPDATE
The contest is over, and editorial is out!

Full text and comments »

  • Vote: I like it
  • +52
  • Vote: I do not like it

By E869120, history, 6 years ago, In English

AtCoder Beginner Contest 105 is ongoing now, from August 11, 2018, 21:00 JST.

The writers are DEGwer, Drafear, square1001 and me.
The point values are: 100 — 200 — 300 — 400.

This contest will be unrated because of problems in English statement. At first, there is no English statement in problem A. 6 minutes after starting the contest, the English statement appeared, but it was too late. Sorry for inconvenience.

After the contest, let's discuss the problem.
Thank you for your participation.

UPDATE

Full text and comments »

  • Vote: I like it
  • +23
  • Vote: I do not like it

By E869120, history, 6 years ago, In English

Hello everybody!

I'm delighted to invite you to anniversary round AtCoder Beginner Contest 100, which starts at Saturday, June 16, 2018 at 21:00 JST. The time is as usual as previous round. (However, some of AtCoder contest start time is unusual...)

This is the fifth round for a Japanese twin-brothers: E869120 and square1001. I already held AtCoder Beginner Contest 064, 076, 088, 096, and this time, it's 100. Multiple-of-four again, again and again! (Where is the probability 1/1024 ???) Anyway, ultimate thanks for rng_58 for reviewed and refined my problems, chokudai for creating one of the best contest platform in the universe. It is obvious that I could not be able to host the contest without cooperation of these two people.

The round is rated for participants whose rating is strictly lower than 1200. High-skilled participants whose rating is >=1200 is also welcomed to participate as out of competition (unrated).

Scoring is 100 — 200 — 300 — 400, as usual. The contest duration is 100 minutes.

Let's participate in the contest, good luck and high rating! Also, hope to have a ultimate-great memory in the first 3-digit round!

Finally, AtCoder managed to hold the contest which the first-digit is not '0'. Since this contest is the 100th anniversary round, so some problem can be associated with anniversary. Wish AtCoder and other contest platforms will be continue till 4-digit round :)

UPDATE

1. Judge queue is clogging now.
2. Now, judge queue is fixed. Sorry for inconvenience.
3. Editorial Uploaded.

Full text and comments »

  • Vote: I like it
  • +51
  • Vote: I do not like it

By E869120, history, 6 years ago, In English

Hello, Codeforces!

On May 5th, 21:00 JST, AtCoder Beginner Contest 096 will be held.

The problems were prepared by square1001 and me (E869120). Thank you for chokudai, rng_58, evima to helping us to host the round on AtCoder!

You will be given 100 minutes and there are 4 problems with following scores: 100 — 200 — 300 — 400.

This contest is rated for all participants whose rating is less than 1200, but as usual, participants whose rating is more or equal to 1200 can take part out of competition.

Good luck and have fun!

UPDATE
  • The contest will start in less than a day.
  • The contest is over! Thank you for your participation! Let's discuss about the problems.
  • Editorial is out! Link

Full text and comments »

  • Vote: I like it
  • +18
  • Vote: I do not like it

By E869120, 6 years ago, In English

Square869120Contest #5 will be held on Sunday, April 15th, 20:00 JST.

About Square869120Contest

  • This contest is unofficial.
  • Square869120Contest has been held 4 times before, and this is the 5-th contest of Square869120Contest.
  • From the 3-rd contest, both Engish and Japanese statements are prepared.

Contest Information
  • Time: Sunday, April 15th, 20:00 JST
  • Duration: 240 minutes
  • Tasks: 9 (Consists of 8 algorithm tasks, 1 marathon task)
  • Writer: E869120, square1001
  • Rated: No (unrated)
  • The first problem is as easy as Codeforces Div2 A, and the last problem is as hard as Codeforces Div1-D,E problems. In addition, there are many partial scores. I think all participants can enjoy the contest.

Scoring
Task ID Max Score Partial Scores
A 200 100+100
B 300 70+140+90
C 500 90+100+310
D 600 120+160+320
E 800 40+160+190+410
F 1000 60+60+250+630
G 1200 80+320+[0 ----- 800, 1-point unit]
H 1400 210+320+870
I 1500 Marathon Task, 1-point unit

Past Contests
Square869120Contest is one of the unrated contest which have a long history. There's 4 previous contest, so you can solve them to practice this kind of contest.



Updates
1. Some of the partial scores has changed. Please check.
2. Some of the partial scores has changed. We think the point values are determined.
3. The contest is over. Thank you for your participation!
4. English editorial will be published on Thursday, 4/19/2018.
5. English editorial uploaded. Link

We are looking forward to your participation! Let's participate and enjoy!!!!!

Full text and comments »

  • Vote: I like it
  • +61
  • Vote: I do not like it

By E869120, history, 6 years ago, In English

Hello Codeforces!

On February 18th, 21:00 JST, AtCoder Beginner Contest 088 will start.

Announcement Page

The problems were prepared by square1001 and me (E869120). Thanks to chokudai and rng_58 to helping us to host the round on AtCoder!

You will be given 100 minutes, and there are 4 problems with the following scores: 100 — 200 — 300 — 400.

This contest is rated for participants whose rating is lower than 1199, but as usual, participants whose rating is more or equal to 1200 can take part out of competition.

Good luck and have fun!

UPD: The contest is over. Let's discuss about the problems.

Full text and comments »

  • Vote: I like it
  • +20
  • Vote: I do not like it

By E869120, 6 years ago, In English

Hello, CodeForces!

AtCoder Beginner Contest 081 (Link) and AtCoder Regular Contest 086 (Link) will be held on December 10th, 21:00 JST.

The writer is semiexp and someone.

Let's participate and enjoy. Let's discuss after the contest.

Full text and comments »

  • Vote: I like it
  • +34
  • Vote: I do not like it

By E869120, history, 6 years ago, In English

AtCoder Regular Contest 085 / AtCoder Beginner Contest 078 held on Saturday, 21:00 UTC+9.

Let's discuss about the contest.
Sorry for announcing too late. (Actually, no one write about this so I wrote this blog.)

Full text and comments »

  • Vote: I like it
  • +14
  • Vote: I do not like it

By E869120, 6 years ago, In English

Dear Codeforces.

This afternoon, I read the announcement of Codeforces Round #444, and I understood about the unrated incident, and the reality of the downvotes — The topic rating was -489.

Actually, I already wrote problems in 6 contests in AtCoder — 4 unofficial contests (Square869120Contest) and 2 official contest. At first, I thought that writing problems is also fun, and becoming the writer is also a honor.

But I saw about so many downvotes — even this may completely changed the writer's life. In reality, his contest has so many mistakes in a single contest, but I knew that the writer could be the worst contributor out of 20000 people.

So, today, I felt fear to writing problems and being the writer.

Human always have a probability to make some mistakes. Fortunately, there are no serious bug in my contests, and all official contests which I already wrote was rated. But any time any people can make mistake. So all of the writer always have probability to fail and get -500 downvotes, and finally they may die in competitive programming.

What is your opinion? I want to listen others' opinion.

E869120

Full text and comments »

  • Vote: I like it
  • +58
  • Vote: I do not like it