Bernstein-Vazirani Algorithm