Se consideră toate permutările de N elemente şi subprogramul:
subprogram caută(permutare, stânga, dreapta, căutat):
dacă stânga ≤ dreapta atunci
mijloc ← |(stânga + dreapta) / 2|
dacă permutare[mijloc] < căutat atunci
caută(permutare, mijloc + 1, dreapta, căutat)
altfel
dacă permutare[mijloc] > căutat atunci
caută(permutare, stânga, mijloc – 1, căutat)
altfel
s-a găsit căutat în permutare pe poziţia mijloc
altfel
nu s-a găsit căutat în permutare
Fie o permutare P de dimensiune N, un număr natural K şi apelul subprogramului de forma caută(P, 1, N, K).
Cerinţă
Pentru câte permutări de dimensiune N, apelul subprogramului nu duce la găsirea valorii K?
Date de intrare
Pe prima linie a fişierului de intrare binperm.in se găsesc, în această ordine, separate prin spaţiu, N şi K.
Date de ieşire
Pe prima linie a fişierului de ieşire binperm.out se găseşte restul împărţirii numărului la 1.000.003.