$ 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
- read both problems, check subtask constraints first
- dumb brute force for the easiest subtask, test on sample, submit
- same for the other problem
- 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.



