Comments

These times sound pretty good. At least you don't seem to have a memory issue.

Maybe practice more greedy/constructive algorithms from the problemset, around 1100-1500, with a hard time limit of 10 mins? And in contest, force yourself to try a greedy that seems like it could work. These problems aren't all interesting anyway since they rely a lot on guessing, and the proof is often way more complicated (e.g. 1100 required to solve, 1800 required to prove). Also, skipping is always an option, if you are strong and fast enough for the rest.

To train this rest, you can practice at 1500-1800 rating. That could be the other half of your training. But 2500 is clearly overshot.

Last but not least, it's often advised to not spend too long on problems. The consensus among red coders seems to be about 15-30 mins. E.g.: https://drive.google.com/file/d/1J2x8pIYQ3MXANgvzOgBciWd3d79j_Exa/view. Which is why contests are an issue; it allows to practice under pressure but spending 1h30 on a problem we should tackle in 10 minutes is not a great usage of our time.

Today's difficulty is off because of AI cheaters. 2+ years ago prevails.

You seem to have an issue with greedy algorithms.

If you take more than 15 minutes on those, your practice is probably not good (you solved them already!):

I didn't only pick greedy, but problems you failed hard on. It would be interesting if you can reply to this comment with the time you took to solve them again.

Should I give up on 2500s and solve only 1200s until I stop overcomplicating?

You know the answer already. But in case you are not convinced, https://mirror.codeforces.com/blog/entry/116371:

However, going through too hard problems is just as bad is going through too easy problems. It is not worth spending 4h understanding a 3000 rated problem when you could learn much more concepts from 4 2300 rated problems in the same amount of time (if that's good for your skill level).

https://mirror.codeforces.com/contest/2225/submission/371995781

    // Optimisation des entrées/sorties
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

LMAO

I don't want to get good, I want to have fun.

Why don't you play Bullet then? More fun and harder to cheat.

Mandatory registration, no thanks

They just cheat bro

Yes, rankings and ratings have no value now, and no CP authority seems to care enough to act*, so I guess competitive programming might just die slowly...

*I don't count a cheaters database as acting, that is pretty useless. The incentive to cheat needs to be destroyed entirely (e.g. by not making rankings and ratings public).

C2 was great!

We've seen people reaching 2500, cheating with LLMs (Gemini 3 Pro?), so it sounds legit.

On soulllessElimination of cheaters, 4 months ago
0

It helps, thank you.

In which problem was it?

Great round!

The website is broken, it says that I have "No email address" while there is clearly one in my Facebook settings, and the organizers aren't replying... any idea how to sort that out?

I would have liked to be contacted by Meta recruiters :(

On AmirrzwMCodeforces Global Round 31, 5 months ago
0

No, it's not a specific n or k, this is just the shortest even k > 2 for which modifying only two numbers doesn't work. The larger the number of bits set to 1 for n, the more numbers will be modified in the answer.

Honestly I did a local bruteforce to find it out.

On AmirrzwMCodeforces Global Round 31, 5 months ago
0

If k=4 and n=30, the answer is 15 23 27 29, not 9 23 30 30. From there you can find out how to solve it (hint: when n & (1 << i) is 0, you can set the bit to 1 for pairs, instead of 0).

On AmirrzwMCodeforces Global Round 31, 5 months ago
0

Here is a counter-example for problem B, if you compared the current word to the answer you're building: ans="ab", s="aba". You would set the current answer to "ababa" since "ab" < "aba", but "abaab" is smaller than "ababa".

Everyone is so afraid of being accused of racism that you will see comments like "no bro, there's just a lot of Indians", seemingly not understanding the concept of per capita and collecting brownie points along the way, making the situation worse.

If we were up to do some digging and address a potential issue, it wouldn't be too hard to find some concrete evidence. For instance, this Codeforces blog showing the disproportionate amount of cheaters among Indians, or the numerous online posts about Indian workers cheating in online interviews (link1, link2).

It's a cultural thing. You can check this post to know more about the whys.

Now, it's not only about cheating. Indians are proportionally way more interested into AI-assisted solving (see the Meta Hacker Cup AI track):

So maybe a lot of them are currently cheating simply because their need for an AI track isn't fulfilled (yet?). At least, let's give credit where credit is due: they could have cheated in the human track but didn't.

Btw, these points are likely valid for Pakistan and Bangladesh.

No.

You can check this profile to convince yourself: _ironman_3000.

The good news is, the rating per-se had little value in the first place. No serious employer would look at it, but rely on its own interviewing process instead. Regarding pre-screening, it might be useful if you are a new grad, and even then, seeing something like "ACM-ICPC" is more reassuring. Yet, only a selected few would know about it. The rest won't care or would even downplay it. To be fair, it's not a hobby that helps you pass the beer test.

Now, does being good at Codeforces have a market value? So far, yes, but up to a certain point. Even elite companies rarely ask questions above div 2 C. Will the skill still be valuable? Meta started allowing AI during interviews and Google discontinued Code Jam, etc., so I have my doubts. It would be great if it could become some sort of standardized test like SAT, but I haven't seen any effort in that direction.

On hello_its_meWill solving CSES help ?, 6 months ago
0

It's inefficient if your goal is Codeforces specifically, i.e. being able to solve reasonably hard problem very fast.

On CSES, you can easily spend 6 hours trying to solve a problem way above your rating, especially since you cannot read the editorial. You would still improve your problem-solving skills, but:

  • it's unlikely that you would have time to reach a similar level problem in contest
  • the techniques you discovered might be so advanced that you'll forget them.

Instead, you could have attempted to solve 10-20 problems rated from 1100 to 1300 (you can filter here).

A Way to Practice Competitive Programming

+18

Competitive programming is insanely hard. It takes real smarts and years of focused grind, which is why it’s such a valuable skill on the job market. It’s also been the starting point for people who went on to build billion-dollar companies and major pieces of modern tech. That’s the level of excellence it can represent.

When someone as strong as you can’t recognize an obvious joke and treats it like serious news, it reinforces the cliché that people only get this good because they’re not adapted to the real world and just hid behind a screen as a stock early-2000s geek. That’s not even how you end up at this level; that path makes you good at video games, not at a demanding problem-solving craft.

Reactions like this don’t lift the scene; they push it back into the "too nerdy, no common sense" box that makes regular people avoid being associated with (competitive) programming. The same goes for the endless anime references and "no girlfriend" jokes. That culture might look harmless, but it really holds the community back.

Thanks for the idea. Here is an alternative implementation.

I'm a bit disappointed with the editorial, especially after waiting for 24 hours.

For 2165A — Cyclic Merging, it would have been interesting to see:

  • the expected double-linked list implementation
  • a proof of the mathematical formula

rather than the straightforward implementation of the formula, which doesn't bring any added value.

I think an explanation could be the following: consider a graph of $$$n$$$ edges of weight $$$w_i = \max(a_i, a_{(i+1)\bmod n}),$$$ connecting vertices $$$a_i$$$ and $$$a_{(i+1)\bmod n}$$$. You want to build a minimum spanning tree over it. Using Kruskal's algorithm, you pick $$$n-1$$$ edges: all except one having weight $$$\max_i w_i$$$. Therefore, the total weight is $$${\sum_{i=1}^n w_i} - \max_i w_i$$$.

You could think that this problem is not equivalent to the original one, because after picking an edge $$$(a_i, a_{i+1})$$$ (aka merging $$$a_i$$$ and $$$a_{i+1}$$$), $$$w_{i-1}$$$ or $$$w_{i+1}$$$ might increase to $$$w_i$$$, if $$$w_i \gt w_{i-1}$$$ or $$$w_i \gt w_{i+1}$$$, but Kruskal picks edges ordered by weight, so this is not possible (i.e. you are guaranteed that $$$w_{i-1} \ge w_{i}$$$ or that $$$w_{i-1}$$$ was already picked, same for $$$w_{i+1}$$$, therefore at every step the weights remain unchanged).

I feel there’s a nicer explanation, but I'm unable to find it; if you have one, I’d really appreciate if you could share it.

lol