Ghicitoare

Time limit: 0.02s Memory limit: 64MB Input: ghicitoare.in Output: ghicitoare.out

Cerință

Fie un număr natural nenul nn, cunoscut. RAU-Gigel alege un număr oarecare din intervalul închis [1,n][1,n], fie acesta xx. Apoi calculează “suma XOR” S = 1 ^ 2 ^ ... ^ (x-2) ^ (x-1) ^ (x+1) ^ (x+2) ^ ... ^ n pe care v-o comunică. Puteți să-l ghiciți pe xx? RAU-Gigel nu prea are răbdare, el vrea repede un răspuns de la voi.

Am notat cu ^ operația XOR (operatorul de disjuncție exclusivă).

Ca să fie sigur că nu nimeriți din întâmplare răspunsul, RAU-Gigel vă testează de mai multe ori.

Date de intrare

Fișierul de intrare ghicitoare.in conține pe prima linie un număr natural TT reprezentând numărul de teste / ghicitori pe care RAU-Gigel vi le propune, apoi TT linii care conțin perechi de forma n S, separate printr-un spațiu, cu semnificația de mai sus.

Date de ieșire

Fișierul de ieșire ghicitoare.out va conține TT rânduri, cu răspunsurile xx, în ordinea solicitării, câte unul pe linie, la ghicitorile lui RAU-Gigel.

Restricții și precizări

  • 1T101 \leq T \leq 10, 1n1 000 000 0001 \leq n \leq 1 \ 000 \ 000 \ 000, 0S1 000 000 0000 \leq S \leq 1 \ 000 \ 000 \ 000, 1xn1 \leq x \leq n;
  • Pentru teste în valoare de 1010 de puncte: T=2,n100T = 2, n \leq 100;
  • Pentru teste în valoare de alte 3030 de puncte: n1 000 000n \leq 1 \ 000 \ 000;

Exemplu

ghicitoare.in

2
5 2
10 14

ghicitoare.out

3
5

Explicație

RAU-Gigel vă propune 22 ghicitori.

La prima ghicitoare avem: n=5n = 5, S=2S = 2. Numărul căutat este 33. Intr-adevăr:

S = 1 ^ 2 ^ 4 ^ 5 = 
|001| ^
|010| ^
|100| ^
|101| = 
|010| = 2 (am notat cu |a| reprezentarea binară a lui a)

La a doua ghicitoare avem: n=10n = 10, S=14S = 14. Numărul căutat este 55. Intr-adevăr, S = 1 ^ 2 ^ 3 ^ 4 ^ 6 ^ 7 ^ 8 ^ 9 ^ 10 are valoarea 1414.

Log in or sign up to be able to send submissions!