B. Find The Array

_Yxc發表於2024-03-05

This a constructive problem on codeforces with a diffcuilty score of 1400.

https://codeforces.com/problemset/problem/1463/B

It's evident that we can always find the correct value of array B by using the function lower_bound for each element in array A.

void solve(){
    int n;
    cin >> n;

    vector<int> a(n);
    for (auto& x : a){
        cin >> x;
    }

    long long sum = 0;
    for (int i = 0; i < n; ++i){
        auto it = upper_bound(pow2_values.begin(), pow2_values.end(), a[i]);
        if (it != pow2_values.begin()){
            -- it;
        }
        int x = *it;
        cout << x << " \n"[i == n - 1];
        sum += (a[i] - x);
    }
}

相關文章