fbpx

Problema #254 – Puteri – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

Se dau n perechi de numere naturale a, b. Să se determine pentru fiecare pereche, dacă există, cea mai mare putere a lui 2 din intervalul determinat de a şi b.

Date de intrare

Programul citeşte de la tastatură numărul n, apoi n perechi de numere a, b.

Date de ieşire

Programul va afişa pe câte o linie ecranului, pentru fiecare interval dat, cea mai mare putere a lui 2 din interval, sau 0, dacă intervalul nu conţine nici o putere al lui 2.

Restricţii şi precizări

  • 1 ≤ n ≤ 10000
  • fiecare dintre numerele a şi b au cel mult 9 cifre.

Exemplu

Date de intrare

3
2 69
20 10
19 25 

Date de ieşire

64
16
0
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n,a[10001],b[10001],p;
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i]>>b[i];
    for(int i=1;i<=n;i++)
    {
        p=1;
        while(p*2<=max(b[i], a[i]))
        {
            p=p*2;
        }
        if (p >= min(a[i], b[i]))
        cout<<p<<'\n';
        else cout << 0 << '\n';

    }
    return 0;
}
Comentarii

S-ar putea sa iti placa