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

Code 1:
#include "bits/stdc++.h"
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
// Including tree_order_statistics_node_update
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/detail/standard_policies.hpp>
// visit this link to study it in a proper way :
// https://codeforces.com/blog/entry/11080
using namespace __gnu_pbds;
#define ordered_set  tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update>
// use less_equal for multiset and less for set ^
// Find by order and order of key
// cout<< *X.find_by_order(k)    <<endl;  //  K-th element in a set (counting from zero)
// cout<< X.order_of_key(k)   <<endl; //  Number of items strictly smaller than k.

using ll = long long;
#define int long long
mt19937_64 RNG(chrono::steady_clock::now().time_since_epoch().count());


void solve() {
    int l,r;
    cin >> l >> r;
    int k = 31 - __builtin_clz( l ^ r );
    int a = ( l | ( (1 << k) - 1 ));
    int b = a + 1;
    int c = ( a == l ? r : l );
    cout << a << " " << b << " " << c << endl;
}

signed main() {
    auto begin = std::chrono::high_resolution_clock::now();

    // std::ifstream file("matrix.txt"); // Replace "input.txt" with your file name
    //     std::cerr << "Error opening file!" << std::endl;
    //     return 1;
    // }

    // std::string line;

    // while (std::getline(file, line)) { // Read the file line by line
    //     std::stringstream ss(line);    // Create a stringstream from the line
    //     std::string num;

    //     // Split the line by commas and extract integers
    //     while (std::getline(ss, num, ',')) {
    //         all.push_back(std::stoi(num)); // Convert the string to an integer and store it
    //     }
    // }

    // file.close();

    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t = 1;
    cin >> t;
    while (t--) {
        solve();
        // cout << "-----" << endl;
    }
    auto end = std::chrono::high_resolution_clock::now();
    auto elapsed = std::chrono::duration_cast<std::chrono::nanoseconds>(end - begin);
    cerr << "Time measured: " << elapsed.count() * 1e-9 << " seconds.\n";
    return 0;
}


Code 2:
#include "bits/stdc++.h"
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
// Including tree_order_statistics_node_update
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/detail/standard_policies.hpp>
// visit this link to study it in a proper way :
// https://codeforces.com/blog/entry/11080
using namespace __gnu_pbds;
#define ordered_set  tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update>
// use less_equal for multiset and less for set ^
// Find by order and order of key
// cout<< *X.find_by_order(k)    <<endl;  //  K-th element in a set (counting from zero)
// cout<< X.order_of_key(k)   <<endl; //  Number of items strictly smaller than k.

using ll = long long;
#define int long long
mt19937_64 RNG(chrono::steady_clock::now().time_since_epoch().count());


void solve() {
    int l,r;
    cin >> l >> r;
    cout << r << " " << l << " " << (l + r )/ 2 << endl;
}

signed main() {
    auto begin = std::chrono::high_resolution_clock::now();

    // std::ifstream file("matrix.txt"); // Replace "input.txt" with your file name
    //     std::cerr << "Error opening file!" << std::endl;
    //     return 1;
    // }

    // std::string line;

    // while (std::getline(file, line)) { // Read the file line by line
    //     std::stringstream ss(line);    // Create a stringstream from the line
    //     std::string num;

    //     // Split the line by commas and extract integers
    //     while (std::getline(ss, num, ',')) {
    //         all.push_back(std::stoi(num)); // Convert the string to an integer and store it
    //     }
    // }

    // file.close();

    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t = 1;
    cin >> t;
    while (t--) {
        solve();
        // cout << "-----" << endl;
    }
    auto end = std::chrono::high_resolution_clock::now();
    auto elapsed = std::chrono::duration_cast<std::chrono::nanoseconds>(end - begin);
    cerr << "Time measured: " << elapsed.count() * 1e-9 << " seconds.\n";
    return 0;
}

Answer: 1