B. Find The Array

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 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);
}
}

posted @ 2024-03-05 21:27  _Yxc  阅读(53)  评论(0)    收藏  举报