Bernstein-Vazirani algorithm