ChallaAjay's blog

By ChallaAjay, history, 55 minutes ago, In English

$ whoami school kid, ~1250 on cf, prepping for zco $ cat /etc/mood coffee: loaded. brain: segfault

for a long time i thought brute force was a skill issue and only the "real" solution mattered. then i read how zco is scored and changed my mind. so here is a short post about it.

subtasks = partial marks

every zco / inoi problem is split into subtasks with different constraints. you dont get ac or wa, you get points for each subtask your code passes.

zco: 2 problems x 100 = 200 marks no negative marking, best submission counts

its basically an api for points: you send code in, it returns a score per subtask.

why brute force works

subtask 1 usually has tiny n (like n <= 10 or 100). you dont need clever ideas, you just do what the statement says. even o(n!) can pass there.

example: cf 1115 A (boss fight)

brute force: try every order of the cards and simulate.

include <bits/stdc++.h>

using namespace std;

int main() { int t; cin >> t; while (t--) { int n; cin >> n; vector a(n); for (auto &x : a) cin >> x; sort(a.begin(), a.end()); long long best = 0; do { long long total = 0; for (int i = 0; i < n; i++) { total += a[i]; if (i > 0 && a[i] == a[i-1]) break; } best = max(best, total); } while (next_permutation(a.begin(), a.end())); cout << best << "\n"; } } o(n! * n), so it tles at n = 50. but for a tiny subtask its free points.

cutoffs, roughly

from samik goyals page, class 8 boys cutoffs were about 41 (2024), 12 (2025) and 59 (2026) out of 200. so it swings a lot with paper difficulty. check the official iarcs page for the real numbers, i might have mixed something up.

my exam day plan

  1. read both problems, check subtask constraints first
  2. dumb brute force for the easiest subtask, test on sample, submit
  3. same for the other problem
  4. optimize if time is left

mistakes to avoid

printing extra text like "answer: " (instant 0) not compiling offline first spending 2 hours on the full solution and getting nothing forgetting long long running on too much coffee and typing retrun 0;

test your fast solution with the brute force

$ ./brute < in.txt > out1.txt $ ./fast < in.txt > out2.txt $ diff out1.txt out2.txt

run both on random small inputs. if diff shows anything, the fast one is buggy.

thats it. if i got something wrong tell me in the comments and ill fix it. gl to everyone giving zco this year.

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