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<int> 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.↵
↵




