Блог пользователя kilobyte136

Автор kilobyte136, история, 3 недели назад, По-английски
  • Проголосовать: нравится
  • +23
  • Проголосовать: не нравится

Автор kilobyte136, история, 3 недели назад, По-английски

Hello Codeforces,

I’m a Div2 participant (around 900 rating) and I was confused after a recent contest that was labeled “Rated for Div2”. My current rating is 913, I joined the round, and afterwards my rating didn’t change at all.

From what I understand, “Rated for Div2” generally means:

  • The contest is intended for Div2 users (rating < 1900).
  • Only Div2 participants should get rating updates.
  • Div1 users can still participate, but for them the round is usually unrated.

However, in my case, even though I am clearly in Div2, my rating remained the same. I’m trying to figure out which of these reasons might apply:

  • Maybe I was not counted as an active participant, but i attempted the contest and even solved the first problem.
  • Maybe rating changes were delayed or there was some issue in the contest and it was made unrated.
  • Or maybe there is some other rule or edge case that I’m missing.

Could someone please explain the exact conditions under which a Div2 user’s rating actually changes in a “Rated for Div2” round, and why it might stay the same even if you are in the target division? Does anybody else have this problem?

contest link : Educational Codeforces Round 189

Edit : i got to know that +0 was incremented indeed, but still, i cannot understand the pattern on which solutions are rewarded increments. ie. at what threshold can i earn in rating > 0, i am quite a new guy in this ecosystem so i would appreciate some.. calm responses (atleast)

Полный текст и комментарии »

  • Проголосовать: нравится
  • -23
  • Проголосовать: не нравится

Автор kilobyte136, история, 5 недель назад, По-английски

Hey Codeforces,

One thing that confused me early on: CF problem ratings aren't assigned by setters — they're crowd-sourced from contest performance. A problem rated 900 might have been solved by fewer people than an 800 in the same round, just because it appeared later in the standings. This means the raw rating is sometimes a poor proxy for actual learning difficulty, especially for beginners.

For example, some 900-rated problems require a clean observation you either see or you don't, while certain 800s are just tedious implementation with no real insight. For someone grinding Div 3/4, blindly following rating order can be discouraging or just inefficient.

I put together a curated problem sheet with this in mind: 70 problems across the 800–1000 range, ordered by what I'd call learning difficulty rather than raw CF rating. Each problem has a note explaining why it's placed where it is, and a Div 3/Div 4 badge so you know what type of contest it came from.

A preview

Preview

A few things that might be useful:

  • Progress is saved via URL hash — just bookmark the link, no account needed
  • There's a handle tracker: enter your CF handle and it auto-marks problems you've already AC'd
  • The curation criteria page lists the 5 rules every problem must satisfy — if you think something doesn't belong, cite the rule and suggest a replacement via feedback
  • 22 recommended Div 3/4 rounds are listed for when you're ready to test yourself under contest conditions

Link: cf-sheet.vercel.app

Happy to discuss the ordering choices or problem selection in the comments. If you think a specific problem is misplaced or shouldn't be there, I'm genuinely open to changes.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +14
  • Проголосовать: не нравится

Автор kilobyte136, история, 5 недель назад, По-английски

Hey Codeforces,

During contests, I kept losing time on things that had nothing to do with solving the problem — manually copying samples into an online compiler, re-running after every edit, squinting at wrong answer output trying to spot the difference. It's friction that adds up, especially under time pressure.

So I built kJudge, a CLI tool for local testing of CF solutions. The core idea: fetch samples automatically, watch your file for changes, and show you a clean diff when your output doesn't match. No browser tab switching, no manual input pasting.

What it does:

  • Auto-fetches samples from Codeforces for any problem — just point it at the problem URL
  • Watch mode — re-runs your solution on every file save, so the feedback loop is as tight as possible
  • WA diffs — expected vs actual output shown side by side, not just "wrong answer on test 2"
  • Contest scaffolding — one command sets up folders and templates for every problem in a round
  • Works with C++, Python, and Java; pure CLI so it's IDE and OS agnostic

Setup is a single binary download from Releases — run it once and it adds itself to PATH. Full guide in the docs.

preview

Repo: https://github.com/Byte-ne/kJudge Docs: https://byte-ne.github.io/kJudge

This is my first public tool — built it for my own practice sessions and figured it might be useful for others in the same boat. If something's broken or you want a feature, open an issue or drop a comment.

Полный текст и комментарии »

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

Автор kilobyte136, история, 6 недель назад, По-английски

Hello CodeForces, I am Back with a genuine question (and a pretty important one) with me,

How to get better at DSA and logic faster?

I’m trying to improve my DSA and problem‑solving logic, but I feel stuck in a loop:

  • I learn a topic (like arrays), then move to bit‑manipulation, only to realize it still needs arrays.
  • I go back, practice, then repeat — it feels slow and inefficient.

I know “practice a lot” is the usual answer, but how can this be done faster and more systematically?
Specifically:

  • How to structure my practice so each topic builds on the previous one without going in circles?
  • How to train “thinking” for 800–1200‑rated problems whose solutions are hard to come up with at first glance?

My current practice

  • I’m solving about 3 problems per day, mostly in the 800–1000 difficulty range.
  • My current Codeforces rating is 814, and I feel stuck repeating the same topics (arrays, strings, bit‑manip, etc.) without clearly seeing faster progress in logic.

What I’m trying to avoid

  • Re‑learning the same topics again and again without a clear plan.
  • Moving to “harder” topics too early and then being forced to go back to basics.

Specific questions I’d like advice on

  • Is 3 problems per day enough at this rating, or should I solve more / fewer but with deeper focus?
  • Once I solve a problem, should I re‑submit it later, or just move to new problems?
  • What’s a realistic roadmap for going from 800–1000 to 1200–1400 in terms of topics and problem‑solving habits?

If you managed to move from newbie to expert relatively fast, I’d really appreciate any concrete steps or a small roadmap you followed. Your advice could help a lot of beginners like me who are stuck in the same loop.

Полный текст и комментарии »

  • Проголосовать: нравится
  • -6
  • Проголосовать: не нравится

Автор kilobyte136, история, 6 недель назад, По-английски

Hey there, im back.

this time im with my OEIS solution! the DIV 4 contest had a question known as the 67th OEIS problem, at first i thought why not the $$$2^n$$$ thingy. as powers of two have diffrent unique gcds, then , i saw the constraints and cried for half an hour :[.

then i tried odds, and evens, then primes... PRIMES! but it disappointed me, well you see, primes will always have a gcd of 1 (theyre primes for a reason), but i wanted uniques, what do i do?? what if i square primes?? well, same result.. hm

the time that it actually hit me was when i did a mistake in my primes square calculating loop, missing my index by 1 indice and multiplying the next prime to my curProd (goofy var name). That was the best, it really gave unique gcds, so i wrote another code, with this logic. it worked.. YESS! thats how i got the answer, pretty dramatic, now heres the logic example:

eg: - $$$P_2 = 2 \cdot 3 = 6$$$ - $$$P_3 = 2 \cdot 3 \cdot 5 = 30$$$ - $$$P_4 = 2 \cdot 3 \cdot 5 \cdot 7 = 210$$$

gcd: - $$$\gcd(P_2, P_3) = \gcd(6, 30) = 6 = P_2$$$
- $$$\gcd(P_3, P_4) = \gcd(30, 210) = 30 = P_3$$$

Its Unique!

heres the code for those who want to absolutely destroy me in the face.

#include <bits/stdc++.h>
#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL)
using namespace std;

bool is_prime(int n) {
    if(n<2) return false;
    for (int i = 2; i*i <= n; i++)
        if(n%i == 0) return false;
    return true;
}

int main() {
    fastio;
    
    vector<int> primes;
    for (int i = 2; primes.size() <= 10001; i++)
        if(is_prime(i))
            primes.push_back(i);
    
    int t;
    cin >> t;
    while (t--) {
        int n; cin >> n;
        for (int i = 0; i < n; i++)
            cout << primes[i] * primes[i+1] << " \n";
    }
    return 0;
}

for those who want a detailed explanation, go to the editorial's comments, i have my explanation written there.

OVER AND OUT

Полный текст и комментарии »

  • Проголосовать: нравится
  • -21
  • Проголосовать: не нравится

Автор kilobyte136, история, 6 недель назад, По-английски

Hey! ---- Currently there was a DIV 4 contest, in which 25k people Participated. i thought at first it would be a good experience, later i figured out, THERE WERE cheaters. despite solving 4 questions with a 288 penalty, I still ranked 10k WTH. by the end of the contest, i saw many profiles struggling with 800* questions days ago, and now they solved till Problem F?? ah, it was a harsh day. But at the end we got something to learn ig!

and yeah my code failed 2 solutions in system testing.. return x failed for Problem A, now im sad.

Have a Great Day Codeforces Round 1090 (Div. 4)

Полный текст и комментарии »

  • Проголосовать: нравится
  • -19
  • Проголосовать: не нравится