Problem: 2057C - Trip to the Olympiad
Language: c++17 

Solution 1 (runtime: 62 ms):
#include <bits/stdc++.h>
#define ll long long
using namespace std;
using vpi = vector<pair<int, int>>;
using pi = pair<int, int>;
using vi = vector<int>;
using vvi = vector<vector<int>>;
#define f(i, n) for(int i = 0; i < n; i++)
void solve(){
    ll l,r;
    cin>>l>>r;
    ll a=0,b=0,c;
    int p;
    bool st=false,st2=true;
    for(int i=30;i>=0;i--){
        if( (l & ( 1ll << i )) ==( r & ( 1ll << i ) )&& !st){
            a+=l&(1ll<<i);
            b=a;
        }else{
            st=true;
            if (st2)
                a=a+(l&(1ll<<i))+(r&(1ll<<i));
                p=max(p,i);
            if (!st2)
                b=b+(1ll<<i);
            st2=false;
      
        }
    }
    for(int i=l;i<=r;i++){
        if (i!=a && i!=b){
             c=i;
             break;
        }
           
    }
    cout<<a<<" "<<b<<" "<<c<<endl;
}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int t=1;
    cin>>t;
    while(t--){
        solve();
    }
    return 0;
}


Solution 2 (runtime: 124 ms):
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
vector<ll>vp(ll n){
    vector<ll>v;
    while(n!=0){
          v.push_back(n%2);
          n/=2;
    }
    ll x=v.size();
    for(ll i=0;i<31-x;i++){
        v.push_back(0);
    }
    reverse(v.begin(),v.end());
    return v;
}
int main(){
    ll t;
    cin>>t;
    while(t--){
        ll l,r;
        cin>>l >>r;
        vector<ll>vl=vp(l);
        vector<ll>vr=vp(r);
        // for(ll i=0;i<31;i++){
        //     cout<<vl[i]<<" ";
        // }
        // cout<<endl;
        // for(ll i=0;i<31;i++){
        //     cout<<vr[i]<<" ";
        // }
        // cout<<endl;
        vector<ll>ans;
        ll j;
        for(ll i=0;i<31;i++){
            if(vl[i]==vr[i]){
                ans.push_back(vl[i]);
            }
            else{
                j=i;
                break;
            }
        }
        // cout<<j<<endl;
        ll k=j+1;
        while(k<31 && vr[k]==0 && vl[k]==1){
            k++;
        }
        if(vl[k]==0 && vr[k]==0){
           ans.push_back(0);
           for(ll i=j+1;i<k;i++){
            ans.push_back(1);
           }
           ans.push_back(1);
        }
        else if(vl[k]==1 && vr[k]==1){
            ans.push_back(1);
           for(ll i=j+1;i<k;i++){
            ans.push_back(0);
           }
           ans.push_back(0);
        }
        else if(vr[k]==1 && vl[k]==0){
             ans.push_back(0);
           for(ll i=j+1;i<k;i++){
            ans.push_back(1);
           }
           ans.push_back(1);
        }
        for(ll i=k+1;i<31;i++){
            if(vl[i]==0 && vr[i]==0){
                ans.push_back(1);
            }
            else if(vl[i]==1 && vr[i]==1){
                ans.push_back(0);
            }
            else{
                ans.push_back(0);
            }
        }
        // for(ll i=0;i<31;i++){
        //     cout<<ans[i]<<" ";
        // }
        // cout<<endl;
        ll x=0;
        for(ll i=0;i<31;i++){
        if(ans[i]==1){
            x+=pow(2,30-i);
        }
        }
        cout<<l<<" "<<r<<" "<<x<<endl;
    }
}