stefdasca's blog

By stefdasca, history, 2 days ago, In English

Hello Codeforces,

On behalf of the international scientific committee of IIOT, we would like to invite you all to the mirror of the international round of this year's IIOT, contest which took place in Egypt.

You are given 9 problems and 4 hours to solve the problems and it is recommended to solve the problems in teams of up to 4 members.

The contest is organized with USACO-like rules, as the mirror lasts until 7th of June, 23:59 UTC+3 and you can choose a window of 4 hours to solve the tasks together with your teammates. You are limited to 30 submissions per problem and the scoring style is the same as in OI (each problem has 100 points and there are subtasks for each problem as well).

The link of the mirror is here.

Thank you and we are looking forward to see you join the contest.

UPD: The tasks are also added in the archive for upsolving: here

Full text and comments »

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

By stefdasca, history, 7 weeks ago, In English

Hello Codeforces!

I tested this contest and I found it of a high quality especially for the div2/div3 participants, and at the request of the organizers, I am sharing the announcement in order to promote it here. The announcement starts below.

Hi all! This is slightly short notice, but if you are interested in a great challenge, you should definitely sign up!

The Indigo Coding Competition will be happening tomorrow on Saturday, April 15th, from 4:30 to 7:00 PM EST! and it will be held on HackerRank.

In order to participate, you need to complete the google form and check out the information from the contest website.

The image

Designed and organized by high school and college students from Indiana, this contest is great for beginners, advanced programmers, and all in between. Anyone can participate and there are prizes worth $700+ for the winners who are in pre-college, but also raffle prizes.

This is a great opportunity to code with friends (you can compete individually or in pairs), meet new people, solve some cool problems, and have fun! If you're interested, check out the website and join the discord server.

We look forward to seeing you there!

Full text and comments »

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

By stefdasca, history, 3 months ago, In English

Hello everybody!

As you already know, some high profile competitions, such as GCJ and TCO have been officially discontinued and there is clearly a lack of competitive programming contests with awards for the very best performers.

Given the size of the community we have here on Codeforces and on other places too, I think we can use our expertise and our networking to create a new series of competitions (and possibly in the future an organization to help competitive programming grow worldwide) to make up and even pass the existent competitions in prestige and awards. After all, the platform which will be used won't even matter that much, as I see it as a team effort to bring competitive programming to a higher standard in terms of prizes in competition.

For example, Codeforces got $125k when people donated for the 10 year badge, which is a lot of money used for expenses such as keeping the servers up, paying problem setters and paying the employees, among others. In my opinion, such a sum of money could help the community run a series of more highly respected competitions to award the best performers for a few years, while also helping communities grow.

Even though there is an economic downturn going on, I'm sure there would be a lot of interested firms in donating even sums such as $1k or even $500, plus as I showed with the Codeforces donations, a lot of individual donors. It doesn't take a lot of donations to at least make up for what was lost as a consequence of losing GCJ and TCO on a yearly basis.

Also, if competitive programming turns out to be more and more popular (that might require some format changes IMO), the income streams would also grow and this could only turn out to be more beneficial for the entire community.

I am aware this would mean a lot of organizing work and this is why I believe working as a team would help us achieve this goal, assuming it is something the community wants.

What do you all think about this idea? Do you think it has any potential to succeed?

I am looking forward to any potential suggestions on how to make things better from this perspective.

Let's have a debate on that and if things go well, maybe even start a conversation in a more organized way to get things going.

UPD1: My starting idea was something based on Titled Tuesdays from chess.com or Titled Arenas on lichess, if that helps. In short, we could organize biweekly or monthly contests with awards for the best performing contestants.

UPD2: I created a Discord server where we can discuss the ideas based on the blog and the comments added by people here.

Full text and comments »

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

By stefdasca, history, 21 month(s) ago, In English

Hello Codeforces.

As you know from one of my previous videos from my YouTube channel , I am offering individual tutoring classes to students interested in getting better at competitive programming while also offering an innovative and customized tutoring program, adapted to their always changing needs in terms of improving their competitive programming performance.

However, there are so many more people who were interested in joining those classes but because of various reasons, they couldn't have classes with me and this is something I want to address with this blog post.

Lately I have been thinking at organizing group classes where I can teach various topics and guiding the group towards getting better, based on their common need, thus adapting two of my main principles when it comes to tutoring. I am looking to have a few group classes during each week.

Some of the ideas I have been thinking at were either creating classes on one demanded topic (for example, a Dynamic Programming series of classes) or creating a series of classes oriented towards people with similar skill levels, which would help them become better at the algorithms and the data structures they need in order to be able to make the push towards the next level in their competitive programming journey.

Another benefit of the group class would be that it will be more affordable than having a one-to-one tutoring program, but this also comes with the price of not being able to get fully customized help as a student.

If you are interested in joining those group classes or if you have anything else to suggest regarding the way I should conduct these classes, you can add a comment to this post, write a private message here on Codeforces or on Discord (username: stefdasca#0001). Based on the popularity of this blog post and on the amount of interest I get, I will keep working on these group classes and I will provide more detail with the way they will be conducted.

Thank you for your continued interest in my work both as an Youtuber (thank you for helping me get 4000 subscribers there) and as a tutor and I am looking forward to getting as much feedback as possible and future students for the group classes too.

UPD1: The group lessons will be topic based and you can join any class you want, and I will announce the schedule beforehand. More details on the Discord server https://discord.gg/9ysRZcmB

Full text and comments »

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

By stefdasca, history, 2 years ago, In English

Hello everybody!

One year ago, I posted the first tutorial video on YouTube, and while many things have changed since then, me and my channel have stayed here, and in this video I am talking about my journey as an youtuber as well as about my journey as a competitive programming after I finished competing actively, like I used to do it in my high school days.

Here is the video

Here is the link for the Discord server.

Thank you for watching and I am really grateful for your support during this time.

Full text and comments »

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

By stefdasca, history, 2 years ago, In English

Hello everybody!

It's been a while since I last posted a video tutorial, and since the previous one received a really positive feedback, I decided to create another tutorial. Since it's generally a data structure which isn't that loved by many competitive programmers, and it has also been suggested by many people in my Discord server, I decided to create a detailed video tutorial about Fenwick Trees.

I explained everything about Fenwick Trees, starting from basics and going all the way to the less well known optimizations, as well as explaining when Fenwick Trees are useful and why should they get more love from the community.

Here is the video

As always, if you have constructive feedback, please share it in comments or in the Discord server.

Thank you for watching.

Full text and comments »

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

By stefdasca, history, 2 years ago, In English

Good afternoon, Codeforces.

Recently, I tried to add some bigger testcases manually in Polygon and it seems like I'm getting this error whenever I'm uploading something bigger than 1MB.

Is there something which could be done about it? I never had this issue before, so I guess it probably has something to do with the recent maintenance Polygon went through.

Thanks in advance.

MikeMirzayanov

Full text and comments »

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

By stefdasca, history, 2 years ago, In English

Have you ever wanted to know how will your CF rating look like in the future, without having to be stressed about the potential shortcomings which may come in future contests?

Have you ever wanted to be able to say that you will get the rating of your dreams soon?

If the answer for both of these questions is Yes, then you came to the right place.

During the last few months, I have used some technical analysis to predict how will some of the people from my Discord server and I have gotten quite consistent results, so I think that my strat is working.

I am not going to enter in details on how do I actually do this, because it requires quite some experience to learn all the details, but as people say, an image is worth 1000 words, so here are some few examples.

First example is ScarletS

Here is how his rating looked like in November, before he had a bad contest

Here I told him that he will fall a bit and the chance for him to rise again is high, and that's what happened

As you can see, a great example of a trendline which held. Hopefully he will keep his uptrend and reach new highs :)

The second example is lookcook

In early December, I told him that he has to be careful at the next contests otherwise bad things can happen

Sadly for him, the rising wedge is starting to play out and he fell to blue

I wish him to make this bearish pattern fail and reach new highs as well, since after all, this is just technical analysis.

Another example is rotavirus

In August, I saw this potential head and shoulders pattern in his chart, which would lead to a downfall.

Sadly for him, this played out too and he fell quite a bit, down to 2100, but hopefully he will rise again as well

However, this doesn't always work, as you can see in Java's graph

I predicted a move up to 2050, based on the previous range(1730-1880) but it didn't work out

Aftermath

I wish him good luck in actually reaching that target.

If you want to know how will your(or your friends') CF rating will look like, post the handle in the comments or an image of the rating graph and I will come with a reply as soon as possible.

However, this system only works for users with at least 20 contests taken and whose ratings are below 2600(from 2600 on, large swings happen and I can't really consider them as relevant in those persons' future skills)

Good luck and have nice holidays and a wonderful 2021!

Full text and comments »

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

By stefdasca, history, 3 years ago, In English

Hello everybody!

Since it has been suggested by many people in my Discord server, I decided to create a longer and more detailed video tutorial about the Knapsack problem.

Because there are many such tutorials online, I have also added more advanced Knapsack variations, including different types of tricks and usages of this DP technique in the problems.

Here is the video

As always, if you have constructive feedback, please share it in comments or in the Discord server.

Thanks for watching.

Full text and comments »

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

By stefdasca, history, 3 years ago, In English

Hello Codeforces!

I have been asked by people in my Discord server and on my YouTube channel to explain my approach for F, and in my opinion, it ended up being an approach worth of writing a separate blog for it, since it's a bit different from the editorial approach and also more intuitive(at least in my opinion).

My solution is slightly different from editorial's, and it relies on using the problem constraints and also on the fact that we only have to respect one of the errors to get a correct verdict, as I'm going to show below.

We will also start from the well known divisor formula:

$$$n$$$ $$$=$$$ $$$a_1^{b1}$$$ $$$*$$$ $$$a_2^{b2}$$$ $$$*$$$ ...$$$*$$$ $$$a_k^{bk}$$$, the number of divisors is $$$(b1+1)$$$ $$$*$$$ $$$(b2+1)$$$ $$$*$$$ ... $$$*$$$ $$$(bk+1)$$$.

Basically, the solution is made of two parts. The first part consists in grouping the prime numbers up to $$$677$$$ in groups such that their product does not exceed $$$10^{18}$$$(the biggest number I could get to by grouping the primes in increasing order, this bound can definitely be made bigger by grouping the primes in a better way, however this is not necessary for this task). Why $$$677$$$? Because grouping requires $$$17$$$ queries, which leaves us with $$$5$$$ more queries to use.

Now, using these $$$17$$$ queries, we can find which queries up to $$$677$$$ show up in the number's prime factorization(For now, we don't care about the power at which they show up, we just want to check if they show up or not). In order to do this, for every prime in the current group, we're going to check if the obtained $$$GCD$$$ divides that prime and add it in an array of prime divisors. Since the product of the first $$$10$$$ primes already exceeds $$$10^{9}$$$, this means we're going to have at most $$$9$$$ primes in the number's factorization.

Since we can ask $$$5$$$ extra queries, we can find the exact power at which each of the smaller primes in factorization shows up at. In order to do this effectively, we will group primes in pairs of two and create some big numbers like this, where $$$a$$$ and $$$b$$$ are prime numbers:

Let's note $$$floor(\log_a 10^9)$$$ with $$$pa$$$ and $$$floor(\log_b 10^9)$$$ with $$$pb$$$

Then, the number will look like this $$$a^{pa}$$$ * $$$b^{pb}$$$.

This number won't exceed $$$10^{18}$$$ and by using GCD, we can find for each power at which it appears in the given number.

After finding the powers at which the smaller prime numbers appear in the given number, all we have to do is print the answer. I'm going to show that it's enough to print $$$max(ans+7, ans*2)$$$.

Why does $$$max(ans+7, ans*2)$$$ work?

My method can miss at most three factors, let's note them $$$p$$$, $$$q$$$ and $$$r$$$(they have to be distinct in order to get us the worst case, according to the divisor formula). Also, they have to be bigger than $$$677$$$ in order to get them missed in my solution. There can't be $$$4$$$ big missed factors because $$$677^{4}$$$ is way bigger than $$$10^{9}$$$.

If I don't miss any prime factor, printing $$$ans*2$$$ is fine, since the relative error will be $$$2$$$ $$$(\frac{ans}{real ans} = 2)$$$

If I miss one prime factor, then printing $$$ans*2$$$ is actually the correct answer.

If I miss two prime factors, printing $$$ans*2$$$ will give a relative error of $$$0.5$$$, which is also fine.

If I miss three prime factors, printing $$$ans+7$$$ will be fine, since the maximal number of divisors for some number of type $$$X * p * q * r$$$ is $$$16$$$ (We can have at most one extra prime factor without passing $$$10^{9}$$$, and in the worst case, ans will always be $$$1$$$, and the relative error will be $$$0.5$$$, which is fine enough.

Also, printing at least $$$8$$$ every time ensures that I will never miss any number with divisor count in range $$$[1, 16]$$$.

Therefore, I managed to get AC using this method. Sadly, I got WA in system tests because I printed $$$ans*2$$$ instead of $$$max(ans+7, ans*2)$$$ in the last case I talked about in blog.

Submission link: 80521041

I hope you enjoyed reading, even though it's quite a long editorial.

Full text and comments »

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

By stefdasca, history, 3 years ago, In English

Given MikeMirzayanov's Div 4 contest announcement and Errichto's suggestion for lower bound for Div 2, I decided to come up with some ideas to further improve this update.

Firstly, I'd like to say that Div. 4 contests are a great addition for people who have absolutely no idea about competitive programming and the ability of being able to solve more than just one problem will definitely make new people more confident when it comes to problem solving.

However, this change will definitely bring lots of new contestants to Codeforces, and some measures will have to be taken in order to deal with the new change.

As Errichto suggested, a rating lower bound would be beneficial because it partly solves the rating inflation and also because it will generate less queue.

Starting from this point of view, I'd like to suggest further improvements which can be made in order to make the platform even better:

1) Since we have parallel div1/div2 rounds, maybe we can also have parallel div2/div3 and maybe div3/div4 parallel rounds as well. Obviously, some lower bounds will have to be implemented, but this is not much of an issue, because the current lower bounds for colors should make the splits easy to implement.

2) Maybe let other people become problemsetters for div3 as well, there are plenty of people who want to become Codeforces problemsetters but maybe their tasks are not considered good enough for a div2 round because of one reason or another. Since div3 tasks are meant to be more standard, the problemsetting criteria can be less harsh.

3) Given the recent inflation of ratings, which is also a problem and if none of these suggestions will be implemented, this is going to become a major problem, since one can become purple with div3 rounds(look at andryusha_na_knopke for proof), maybe also change the color thresholds for each color.

What do you think about these possible new changes, would they be useful to make the Codeforces experience even better in this era of dramatic growth? I'd like to see your opinions in comments.

Full text and comments »

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

By stefdasca, history, 3 years ago, In English

Hi!

Since i'm getting close to 1k subscribers, I decided to do a livestream where I will do various CP stuff to celebrate the first such milestone for me.

Stream link

Channel link

Discord server

Have fun!

Full text and comments »

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

By stefdasca, history, 3 years ago, In English

Hi!

Since the editorial will be posted later, I decided to write some quick solutions for the problems I managed to solve, as well as video editorials for C and F.

A - Little Artem
B - Kind Anton
C - Eugene and an array
D - Challenges in school №41
F - Kate and imperfection

Full text and comments »

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

By stefdasca, history, 3 years ago, In English

Hi!

Here I'm going to keep updated the list of Problems of the Day I'm going to make a video editorial for.

If you want to be the one to have its problem as the new POTD, join my Discord server and suggest any problem you want, as long as it's solvable by me :D

Have fun!

Full text and comments »

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

By stefdasca, history, 3 years ago, In English

Hello!

The first problem of the day is a div2F from a recent Codeforces Round, please check it out!

Video

Discord Server

You can join the server in order to suggest new POTDs, and subscribe to the channel for more content!

Full text and comments »

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

By stefdasca, history, 3 years ago, In English

Hi!

Since we're all staying home, I decided to come up with a way to spend our time in a more pleasant way.

At the beginning of each day, I'm going to post a problem on my Discord server and in the evening, I'm going to post a video editorial to that problem.

Below you will find the video for the first problem of the day!

Video

The problems will have ratings between 0 and 2400, and you have the possibility to choose the next video editorial, as long as the problem is interesting enough!

Have fun!

Full text and comments »

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

By stefdasca, history, 3 years ago, In English

Hello Codeforces!

I decided to finally do a screencast and a full editorial, hope you'll enjoy watching.

Screencast

Video Editorials

Discord Server

Full text and comments »

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

By stefdasca, history, 3 years ago, In English

Hello!

Since the editorials are still not out, I prepared video editorials for div2 B, C and D.

B

C

D

Check the videos and if you liked them, subscribe to the channel for more CP content

Full text and comments »

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

By stefdasca, history, 3 years ago, In English

Hi!

While I was solving some National Olympiad problems, I came up with an interesting DSU trick which can be used instead of Parallel Binary Search.

Now that I started an YouTube channel, I decided to make a video based on it.

If you enjoyed watching, please leave a like and press the subscribe button.

Also, if you know the name of this trick, please share it here or on Youtube comment section.

Full text and comments »

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

By stefdasca, history, 3 years ago, In English

Hello!

I just uploaded a video about my opinion when it comes to approaching Codeforces contests.

Here

Everything I said is just the result of my personal experience with doing contests and I hope you liked my content.

You can also join my new discord server where I will interact with the subscribers and also with those interested in algorithmics.

Here

Full text and comments »

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

By stefdasca, history, 3 years ago, In English

Hi guys, I hope you're all staying home safe from COVID-19.

I decided to start an youtube channel where I'm going to explain various problems, both in English and in Romanian.

The latest video, where I'm trying to solve a div1B from a recent Codeforces Round

Even though I'm just a beginner when it comes to doing such content, I will definitely improve as time goes by.

You can leave suggestions in comments and subscribe to the channel, if you enjoy the content.

I hope you'll enjoy watching those tutorials.

Full text and comments »

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

By stefdasca, history, 4 years ago, In English

The registration for the next Div3 is restricted to people with rating lower than 1600, and this shouldn't be the case, since Div3 contests allow out of contest participation.

Full text and comments »

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

By stefdasca, history, 4 years ago, In English

It seems like uphacking is affecting rating changes, this shouldn't happen.

rip fishy

some other people too

Full text and comments »

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

By stefdasca, history, 4 years ago, In English

Hi, Codeforces!

I've observed that in the last several months, I haven't managed to achieve a significant progress in average rating on CF and i started to worry whether I touched my peak potential or not, so I came here to ask you some questions. I know it's a debated subject, yet I still think it's sensible to talk about this, so I came up with some questions I still haven't found a clear answer to.

1) When do you believe one has touched his/her peak(bonus points if you're talking about yourself)?

2) If you ever believed you're stagnating, how did you change your way of practice and why?

3) Do you think that everyone has its maximal potential? No matter what do you believe, I'd like to see you state the reasons why you believe/don't believe everyone has a maximal potential.

If you have tips to counter this problem, please share them here, they will help me and many other people now and in the future.

Full text and comments »

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

By stefdasca, history, 4 years ago, In English

Hi everyone!

ICPC World Finals 2019 are approaching and we're proud to announce that we're going to be a discussion place for all those who have qualified to the World Finals.

If you are one of the finalists, you can join our server to take part in the special ICPC World Finals chat.

Good luck and have fun!

Full text and comments »

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