Fișierul titu2020.in conține un șir de cel mult 10⁶ numere naturale distincte din [1, 10⁹]. Se cere numărul maxim de termeni ai unui subșir strict crescător al șirului, format numai din termeni pari. Algoritm eficient ca timp de executare.
Exemplul 1: 28 11 10 13 15 42 24 94 30 80 17 19 2 3 4 6 8 7 → răspuns 4 (ex: 10 24 30 80 sau 2 4 6 8).
Ideea: păstrez doar termenii pari în ordinea din fișier (vectorul par[]), apoi caut cel mai lung subșir strict crescător cu metoda „discuri pe tije": varf[k] = cel mai mic capăt posibil al unui subșir crescător de lungime k. Fiecare termen ajunge cu căutare binară pe prima tijă cu vârful ≥ el. lungMax = câte tije am. Răspunsul e lungMax.
lungMax = 0 (nicio tijă). De aceea la primul termen căutarea binară nici nu rulează — dr = lungMax = 0.par[] și tijele varf[1..lungMax] st·dr·mij = căutarea binară · lung = lungimea (a câta tijă)