s_jaskaran_s's blog

By s_jaskaran_s, history, 4 months ago, In English

Hello!

From now on, we @Senior will be having DCDs (Daily Contest Discussions) for all contests on Codeforces LIVE! The recordings will be posted on our YouTube channel. We already have posted recordings for the past 2 contests (#845 and Edu Round #146) on the channel.

The discussion meeting will be open to the first 100 participants, and the link to it can be found below.

Senior is inviting you to a scheduled Zoom meeting. 
Topic: Codeforces Round #846 (Div. 2) | A-E Solutions by Jaskaran Singh @Senior 
Time: Jan 25, 2023 10:15 PM India 
Meeting ID: 873 6319 5747 
Passcode: 000000 

Invite: https://us06web.zoom.us/j/87363195747?pwd=MTUvZHdnR3lDUUNGM0FjRXNpVENqUT09

Please join our Discord Server for updates on DCDs and our mentorship venture at Senior!

Full text and comments »

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

By s_jaskaran_s, history, 5 months ago, In English

UPD: Code links are working now

1731A - Joey Takes Money

Idea: s_jaskaran_s

Hint
Solution

1731B - Kill Demodogs

Idea: s_jaskaran_s

Hint
Solution

1731C - Even Subarrays

Idea: ka_tri

Hint 1
Hint 2
Hint 3
Solution
Code(C++)
Code(Python)

1731D - Valiant's New Map

Idea: s_jaskaran_s

Hint 1
Hint 2
Hint 3
Solution
Code(Prefix Sum)
Code(Sparse Table)

1731E - Graph Cost

Idea: s_jaskaran_s

Hint 1
Hint 2
Solution

1731F - Function Sum

Idea: nishkarsh and s_jaskaran_s

Solution

Full text and comments »

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

By s_jaskaran_s, 5 months ago, In English

Hello, Codeforces!

The Programming Club, IIT Indore is proud to present the 8th edition of its flagship event, Divide By ZeroCodeforces Round #841 (Div. 2) and Divide By Zero 2022, under the annual code-fest, Euristica'23.

You can check some of the previous editions of Divide By Zero prepared by us : Codeforces Round #399 (Div. 1 + Div. 2), Codeforces Round #474 (Div. 1 + Div. 2), Codeforces Round #714 (Div. 2).

The contest will take place on Dec/27/2022 17:35 (Moscow time). This round will be rated for all participants with a rating lower than 2100.

People who had a great contribution to making this round possible:

You will be given 6 problems, and 2 hours to solve them. The points distribution will be updated later.

UPD1: Score distribution is 500 — 1000 — 1500 — 1500 — 2000 — 2750

UPD2: The editorial is up.

PRIZES: Twenty T-shirt will be given to:

  • Top 10 Indian Participants

  • Random 10 from top 100 (rank 11-100) Indian participants

Hope you guys enjoy the contest! See you on the leaderboard :P

About Euristica

Euristica is the annual flagship programming event of The Programming Club of IIT Indore. As part of Euristica, we conduct a variety of online competitions spanning different programming domains. These events are open and free for all, and there will be exciting prizes and goodies for the winners.

Head over to our website to find out more about the competitions.

UPD3: Here is the list of winners who won T-shirts. We will contact you guys soon. Congrats!

Top 10 Indian Participants

Random 10 from top 100 (rank 11-100) Indian participants

We have uploaded the link to the code for generating random numbers and ranklist here.

Full text and comments »

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

By s_jaskaran_s, history, 13 months ago, In English

The fourth part that you should keep in mind when you plan and strategize is up-solving. This is one of the things that will make you stand different from others. The efforts you put really matter. Most people do not have the habit of up-solving, but this is where you will sharpen your swords.

You should try to solve the problems that you are not able to solve during the contests but you are capable of doing, seeing your past performances. The Doability of a problem also depends on what topics you know. It might happen that the level of the problem was not that high, but you weren’t able to do that because you didn’t know about the concepts used in that. There is totally no need to get worried about that. Of course, you are in the learning process and you are going to learn that topic whenever it comes to your list. Till then either you decide to learn that topic immediately, or you leave that question and do it afterward when you learn the topic. You should try to solve the other questions which seem doable during up-solving and your attitude should be that, now if I see any question of this kind, I’d do it easily. That’s how you grow as a programmer.

It does happen a lot of times that during up-solving you don’t get the logic in the editorial. But you shouldn’t be worried, it’s ok to skip a question that doesn’t get in your head right. Maybe it’s not the time that you are able to do such a question. You’ll come around when you grow as a programmer. That’s what I followed. I never took pressure. It is the most important thing that you remain calm. Also, don’t ever take the pressure of a problem. If you are not able to do it even in 2 hours, then just leave it. It would just demotivate you. Think about a problem as long as you can remain calm and don’t get irritated by it. The moment you get irritated, just look at the solution. If you still don’t get it, ask a friend for help or just leave it if you still don’t get it. Upsolving is all about trying, to see what you could have done, nothing else. So don’t take a lot of pressure about up-solving, it is mainly about practice, so do it like a practice.

Full text and comments »

  • Vote: I like it
  • -12
  • Vote: I do not like it

By s_jaskaran_s, history, 13 months ago, In English

Welcome back part 2! So hopefully the previous blogs helped you in planning your strategy.

The third and yet another important part is your attitude towards your performance. It’s a long heard story that we don’t see the results suddenly. It takes time, and don't think it’s just you who faces this hurdle as even a very good programmer went through this.

Now I’d tell you what should be your attitude towards performance. See the main thing you should focus on is not your rating, it is your rank in any particular contest. You just need to compare your previous ranks to see the progress. When you consistently get a rank above a particular range, you seem to have attained a level that any day you’d get a better rank than this. You set a level that you have to get a rank better than this, this is how you make progress.

If you see graphs of some good programmers on cf, you’d see a lot of downs. Downs might vary in duration and size, but the effect is the same, mental state is the same. You must be saying that you wish you had no downs. But hear me, downs are the main story behind your struggle and mental state. Downs are really important for you to grow as a programmer. Downs do make you feel bad and also demotivate you but your progress and success are defined by the downs you had, and how much did you grow. You might have experienced that you are learning new stuff but your ratings are going down from the past few contests and you are just struggling with yourself and thinking that you are useless. Trust me, it has happened to me too. The only difference is I never get demotivated. Even if I lose some rating, I remain calm and wait for my hard work to show the results. Hard work takes time to show the results. I’ll tell you the reason why I don’t get demotivated.

There are two things that you should keep in mind -

  • Your performance in the contests

  • What are you capable of doing in a contest

Capability actually includes up-solving, about which we’ll talk next time. You know performance is often based on luck. An unlucky day might get you -100 on your rating. But that shouldn’t matter, if you are capable, then you’d easily get back your rating. After every contest, if you have underperformed, you should see what you are capable of, and what problems you would have solved easily on a normal day. What rank you would have got in that contest if you weren’t unlucky, that is the main thing that motivates me. What if my day was good, I would have easily got a +50 on my rating or so. So I am capable of getting a higher rating and I would get it someday.

Full text and comments »

  • Vote: I like it
  • -22
  • Vote: I do not like it

By s_jaskaran_s, history, 13 months ago, In English

Welcome back! If you are a new reader, I recommend you to read the previous blog.

Moving forward to the second important part of the plan is your attitude towards doing cp. This is a major part of your journey because that will decide how good of a programmer you become.

See, attitude is really important. It doesn’t matter how much you learn. What matters is, how you use that knowledge in cp and what is your state of mind. So take it slow. Learn a topic only when you want to. Take as much time as you want because it only depends on your mood. That's what cp is. Cp is like a sport. You enjoy it, you do it only when you want to. I know it is not the same with everyone. My case might be different. It might take a person who is not as interested as me a while longer to do things. Competitiveness is the key to my motivation. You need to develop some kind of competitive spirit to make it easier. Let it be your friends. Just compete with your friend in every contest and compare your ranks with him. It is really good to have a healthy competition. You’d want to have a better rating than him. With your progress, competition does change. You might now need a better competitor who is ahead of you and you just want to be better than him. That's what drives you to have a better rating and it really helps you make a progress. Competition is what you need. It really satisfies you when you come first among your friends. It is really important that you interact with others. It is really motivating and helpful to have a friend's circle doing cp. Try to discuss contest questions with them. You learn a lot that way. You learn about different and better approaches.

See what I follow in my life is, that I do what I want to do. There is no pressure on me regarding cp. I just want to do it and get better at it because I really enjoy it and enjoy getting better than others. You should do cp if you really want to do it. Otherwise, it won’t be any good. But still, the only way you can be interested in through competition. If cp is a compulsion, just create competition for yourself, that's it. I can’t motivate you any other way.

Full text and comments »

  • Vote: I like it
  • -39
  • Vote: I do not like it

By s_jaskaran_s, history, 13 months ago, In English

Hi, I’m Jaskaran Singh. The goal behind me writing this is to help as many students to navigate their journey from starting out programming to a hard-core competitive programmer!

Is it your first time, starting out CP(competitive programming)? And even after trying your level best do you think that there is still something that you are missing out on? Do not worry. It took me about 6 months to go from a noob programmer to someone decent enough to be a Candidate Master on cf and 8 more months to become a Master. I still have a long way to go, but the first step to being a good programmer is working in the real world and getting experience.

I started doing cp in January 2021. I started giving out contests on cf and also started learning new topics. I enjoyed solving the problems. CP is like a sport to me. I do it only when I want to. I don’t take any pressure regarding CP. I spent about 4 hrs daily on CP to get this good. Do you know what motivates me to do CP? It’s competition. I am quite competitive so I really like to get ahead of others. It motivates me to learn more and become a better programmer.

Tbh, at first, I was reluctant to learn, but when I saw some people in my batch were ahead of me, I wanted to get ahead of them and so I started learning.

If I talk about contests, I always focused on my rank in a contest rather than the rating. I tried to improve my rank gradually. You can also see that I have given a lot of contests on cf. This amount of practice and experience really helped me a lot in getting better.

Being a beginner it is important that you have a proper plan before moving ahead to cp. I have broken down my plan that I diligently followed, and will hopefully help you to make your own plan if you are just starting.

To head into the plan, the prerequisite is knowing the basics and syntax of one programming language. The common languages are java, python, and c++ that most students follow. You can stick to the one you are more comfortable with of these three, but I’ll suggest you start with c++ as it is a faster language. Now if you don’t know the basics and syntax of any above languages, do not panic there.

Here are the RESOURCES that I used and strongly recommend everyone to use to start the journey -

To start with, this is one of the videos that clears your basics. Watch it fully, it is sufficient for you to start cp. Now after that, I’d suggest you do sufficient practice before learning anything new. At least for one month. Give every contest on cf. Your target should be to be able to solve 1-2 problems of cf contests. When you are consistent enough and confident enough that you can solve the first 2 questions or even 1 question if the 2nd question is of a higher rating than 1200. You can start learning new stuff. You shouldn’t think about your rating. Just below 1200 is good enough. Now, I’ll tell you exactly the source of my rating. You must not have heard about USACO guide. It is the site, which guides you to achieve perfection in cp. I’d say this guide is self-sufficient. You don’t even need to follow any other thing tbh. I just followed USACO and gave contests on cf. You should start USACO from the bronze section, every section has topics with increasing levels. You should learn all the topics given there in any order you want. You just need to explore it once. Every topic has several links of sources to learn theories and there are several problems there to practice that topic. They are enough to make you confident enough in a topic. But keep in mind that problems in USACO are sometimes really hard, so you don't need to solve all the problems in the beginning stage. But don’t ever rush into learning. Your equation should be, practice more than you learn.

In the next few blogs, I'll be covering what should be your mindset while doing CP and how should you upsolve and how should you take your performance in a contest.

Full text and comments »

  • Vote: I like it
  • -30
  • Vote: I do not like it