Skip to content

Contest Reality Ladder

What This Ladder Trains: Real contest conditions where you don't know the topic in advance. These 20 problems mix DP, graphs, data structures, strings, math, and greedy -- sorted purely by difficulty. The topic tag is hidden so you must identify the technique yourself. This is the bridge between structured practice and actual competition performance.

Use this as a capstone, not a fourth practice option. It is not a parallel ladder to the topic ladders — it's the test you take after them. Three good moments to come back here:

  • After finishing a rating-band ladder, before declaring it "done."
  • After plateauing in topic ladders, to confirm the gap is recognition rather than algorithm.
  • As the warm-up for a virtual contest block, to re-engage the "I don't know what topic this is" reflex.

Quick Revisit

  • SKILL FOCUS: technique identification -- mixed topics with hidden tags, simulating real contests
  • DIFFICULTY: 1200--1900
  • PROBLEMS: 20
  • PREREQUISITE: topic-specific ladders (04--07) or the 1400-1700 ladder
  • HEADLINE METRIC: technique identification accuracy before hint or editorial (track this; solves are secondary)

Contents


Warm-Up (1200-1400)

6 problems across mixed topics. Identify the technique before coding.

#ProblemRatingTopicHint
1Cut Ribbon1300
TopicDP
HintCoin-change variant: dp[len] = max pieces using the three ribbon sizes.
2Ice Skating1200
TopicGraphs / DSU
HintPoints sharing x or y coordinate are connected. Answer = connected components - 1.
3Delete Two Elements1200
TopicData Structures / Map
HintCompute required pair sum from total. Count matching pairs with a frequency map.
4Substring Removal1200
TopicStrings / Combinatorics
HintCount valid results: prefix of one char + suffix of one char. Handle same-character overlap.
5Little Girl and Maximum Sum1500
TopicGreedy / Difference Array
HintDifference array for query frequency per position, then sort and pair largest values with most-queried positions.
6Ball in Berland1400
TopicCombinatorics / Sets
HintCount total pairs minus conflicting pairs. Two pairs conflict if they share a boy or a girl.

Core (1400-1600)

8 problems. The difficulty jump is real -- budget 45 minutes each.

#ProblemRatingTopicHint
7Vacations1400
TopicDP
Hintdp[i][last] with last in {rest, gym, contest}. Minimize rest days respecting availability and no-repeat constraint.
8Kefa and Park1500
TopicGraphs / DFS
HintDFS from root tracking consecutive cats. A leaf restaurant is reachable if cat-count never exceeds m.
9Sleeping Schedule1500
TopicDP
Hintdp[i][time mod h] = max good wake-ups. Two choices per day: sleep a[i] or a[i]-1 hours.
10Fox and Two Dots1500
TopicGraphs / DFS
HintFor each color, check if the subgraph has a cycle using DFS. A cycle exists if you find a visited non-parent neighbor.
11Good Substrings1500
TopicStrings / Trie
HintInsert substrings into a trie, counting bad characters. A node represents a good substring if bad <= k and it's a new node.
12Two Arrays1600
TopicDP / Combinatorics
HintNon-decreasing a[] and non-increasing b[] with a[m] <= b[1]. Equivalent to choosing 2m values with stars-and-bars.
13Chocolate Bunny1600
TopicInteractive / Math
HintQuery (i,j) and (j,i). The mod results reveal which position has the smaller value -- place it and continue.
14Ayoub and Lost Array1500
TopicDP
Hintdp[i][r] = ways to fill positions 1..i so running sum === r (mod 3). Transition: try each valid value in position i's range.

Advanced (1600-1900)

6 problems. These require confident technique identification and clean implementation.

#ProblemRatingTopicHint
15Graph Without Long Directed Paths1700
TopicGraphs / Bipartite
HintOrient edges so no path has length >= 2. Only possible if bipartite -- 2-color and orient each edge from one color to the other.
16Consecutive Subsequence1700
TopicDP
HintLIS variant where consecutive values differ by exactly 1. Use a map: dp[v] = length of longest ending at value v.
17Kefa and Dishes1800
TopicDP / Bitmask
HintBitmask DP: dp[mask][last] = max satisfaction eating the set of dishes in mask, ending with last.
18Multiset1900
TopicData Structures / BIT
HintBIT on values. Delete k-th smallest by binary searching the prefix sum. Process all deletions, output the survivor.
19Password1700
TopicStrings / Z-function
HintZ-function gives all prefix matches. Find the longest prefix that is both a suffix (z[i]+i = n) and appears as a middle substring.
20Dijkstra?1900
TopicGraphs / Shortest Path
HintStandard Dijkstra from node 1 to n with path reconstruction. Use long long and handle the n=1 / unreachable cases.

How to Use This Ladder

  1. Don't peek at the topic tags. The whole point is to identify the technique yourself. Only reveal the tag after you've committed to an approach or given up.
  2. Simulate contest conditions. Set a timer. Work problems in order within each tier. No editorial access until after the timer.
  3. Time-box per tier:
  • Warm-Up: 20 min per problem (2 hours total)
  • Core: 30 min per problem (4 hours total)
  • Advanced: 45 min per problem (4.5 hours total)
  1. After each session, review: "How quickly did I identify the technique? What signal told me?" Build your personal pattern-trigger list.
  2. Track your identification accuracy. If you consistently mis-identify DP problems as greedy (or vice versa), that's a specific skill to train -- revisit the Problem Pattern Recognition guide.

Scoring Guide

The primary metric is identification accuracy — for each problem, did you name the right technique before peeking at the topic tag or hint? Solve count is secondary; a problem where you correctly identified the technique but ran out of implementation time still counts as a recognition win.

Identification accuracyMeaningNext Step
≥ 80% (e.g. 16/20)Recognition is contest-ready at this rangeVerify with solves: if also ≥ 16/20 solved, climb to the 1700→2100 ladder
60-79%Recognition mostly works but has blind spotsIdentify which topic categories you mis-tag and revisit the matching topic ladder (04-07)
40-59%Pattern triggers are not yet wiredRe-read Problem Pattern Recognition, then redo this ladder
< 40%Topic ladders haven't yet generalizedReturn to topic-specific ladders (04-07) and re-attempt after each

After identification accuracy is solid, look at solve count as the secondary check — it tells you whether implementation under time pressure is keeping up with recognition.

Progression Check

  • [ ] Warm-Up: solved >= 5/6, identified technique correctly for all
  • [ ] Core: solved >= 6/8, identified technique correctly for >= 5
  • [ ] Advanced: attempted all 6, solved >= 3
  • [ ] Technique identification accuracy >= 80% (correct guess before coding)
  • [ ] Average solve time is within the time-box for each tier

See also: Problem Pattern Recognition | Rating ladders | Topic ladders

Built for the climb from Codeforces 1100 to 2100.