Cerința
Se dă N și Q, apoi Q interogări de tipul K X pentru fiecare interogare să se afișeze separate prin spațiu ( ficare interogare pe un rând diferit ):
1. Câți vectori de exact N elemente din intervalul \([0, {2}^{K})\) ( mai mari sau egale cu \(0\) și strict mai mici ca \({2}^{K}\) ) există astfel încât valoarea \(a_1\) & \(a_2\) & ... & \(a_N\) să fie X-frumoasă. Un număr este X-frumos dacă în reprezentare binară are exat X biți setați ( cu valoare = 1 ). Cu & am notat operația pe biți AND.
2. Câți vectori de exact N elemente din intervalul \([0, {2}^{K})\) ( mai mari sau egale cu \(0\) și strict mai mici ca \({2}^{K}\) ) există astfel încât valoarea \(a_1\) | \(a_2\) | ... | \(a_N\) să fie X-frumoasă. Un număr este X-frumos dacă în reprezentare binară are exat X biți setați ( cu valoare = 1 ). Cu | am notat operația pe biți OR.
3.Câți vectori de exact N elemente din intervalul \([0, {2}^{K})\) ( mai mari sau egale cu \(0\) și strict mai mici ca \({2}^{K}\) ) există astfel încât valoarea \(a_1\) ^ \(a_2\) ^ ... ^ \(a_N\) să fie X-frumoasă. Un număr este X-frumos dacă în reprezentare binară are exat X biți setați ( cu valoare = 1 ). Cu ^ am notat operația pe biți XOR.
Date de intrare
Fișierul de intrare bit.in va conține pe prima linie N și Q iar apoi pe urmatoarele Q linii câte 2 numere, K și X, cu semnificația din enunț.
Date de ieșire
Fișierul de ieșire biti.out va conține pe Q linii răspunsul întrebărilor, pe linia i se va afla răspunsul aferent celei de a i-a intergoare după ordinea citirii.
Restricții și precizări
1 <= N <= 1.000.000.000.1 <= Q <= 100.000.0 <= X <= K <= 1.000.000.- Toate rezultatele vor fi tipărite
modulo\({10}^{9}+7\).
Exemplu:
biti.in
2 1 1 1
biti.out
1 3 2
biti.in
420 1 696 69
biti.out
626471342 256445754 914714458
Explicație
În primul exemplu ne interesează numărul de vectori cu exact 2 elemente >= 0 și <= 1 care au AND-ul elementelor 1, singurul vector este [1,1]. Cei trei vectori care respectă condițiile la OR sunt [0,1], [1,0] și [1,1]. Pentru XOR cei 2 vectori sunt [0,1] și [1,0].