Tort

Time limit: 0.5s Memory limit: 128MB Input: tort.in Output: tort.out

Construim un tort. Pornim cu o foaie de grosime AA. Putem efectua una din două operații posibile:

  • Împăturim tortul, îndoind foaia pe din două. Grosimea tortului se dublează.
  • Adăugăm un strat de unt pe deasupra. Stratul de unt are grosime BB. Grosimea tortului crește cu BB.

Cerință

  1. Dându-se AA, BB și CC să se spună care este grosimea minimă a unui tort ce are grosime cel puțin egală cu CC.
  2. Dându-se AA, BB și CC să se spună care este numărul minim de operații în care se poate obține accea grosime minimă.

Date de intrare

Pe prima linie a fișierului de intrare tort.in se vor găsi numărul cerinței, PP, și numărul de teste, TT. Pe următoarele TT linii se vor găsi triplete AA BB CC.

Date de ieșire

În fișierul de ieșire tort.out afișați răspunsul cerut pentru fiecare triplet de la intrare, câte unul pe linie.

Restricții și precizări

  • 1A,B1091 \leq A, B \leq 10^9
  • max(A,B)C1017max(A, B) \leq C \leq 10^{17}
  • 0T1060 \leq T \leq 10^6
# Punctaj Restricții
1 6 P=1,A=BP = 1, A = B
2 7 P=2,A=1,B=1P = 2, A = 1, B = 1 și CC are forma 2k12^k - 1
3 10 P=2,A=1,B=1P = 2, A = 1, B = 1
4 15 P=1,T=1;500A,B1 000;10 000C200 000P = 1, T = 1; 500 \leq A, B \leq 1 \ 000; 10 \ 000 \leq C \leq 200 \ 000
5 7 P=2,T=1;500A,B1 000;10 000C200 000P = 2, T = 1; 500 \leq A, B \leq 1 \ 000; 10 \ 000 \leq C \leq 200 \ 000
6 19 P=1P = 1, fără restricții suplimentare
7 36 P=2P = 2, fără restricții suplimentare

Exemplul 1

tort.in

1 2
90 100 480
15 25 507

tort.out

480
510

Explicație

480=(90+100)×2+100480 = (90 + 100) \times 2 + 100
510=[(15+25+25+25+25)×2+25]×2510 = [(15 + 25 + 25 + 25 + 25) \times 2 + 25] \times 2

Exemplul 2

tort.in

2 2
90 100 480
15 25 507

tort.out

3
7

Exemplul 3

tort.in

1 1
10 10 632

tort.out

640

Explicație

640=10×2×2×2×2×2×2640 = 10 \times 2 \times 2 \times 2 \times 2 \times 2 \times 2 sau 640=(10+10)×2×2×2×2×2640 = (10 + 10) \times 2 \times 2 \times 2 \times 2 \times 2

Exemplul 4

tort.in

2 1
10 10 632

tort.out

6

Exemplul 5

tort.in

2 1
3 7 767

tort.out

8

Explicație

Tortul va avea grosime minimă 768768, obținută astfel: 768=3×2×2×2×2×2×2×2×2768 = 3 \times 2 \times 2 \times 2 \times 2 \times 2 \times 2 \times 2 \times 2

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