From 501214bfca9071535f8cca6a8db89a2285da9dfa Mon Sep 17 00:00:00 2001 From: /Charchit_Gangwar/ <114564628+ATOMworkplace@users.noreply.github.com> Date: Tue, 15 Oct 2024 18:17:08 +0530 Subject: [PATCH] Create Optimal bitwiseOR.cpp Addition of Optimised BitwiseOR code --- bit_manipulation/Optimal bitwiseOR.cpp | 41 ++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 bit_manipulation/Optimal bitwiseOR.cpp diff --git a/bit_manipulation/Optimal bitwiseOR.cpp b/bit_manipulation/Optimal bitwiseOR.cpp new file mode 100644 index 00000000000..19caa5814cd --- /dev/null +++ b/bit_manipulation/Optimal bitwiseOR.cpp @@ -0,0 +1,41 @@ +#include +typedef long long ll; +typedef long double ld; +const int N = 1e5+5; +const int MOD = 1e9+7; + +using namespace std; +ll bitwiseor(ll a, ll b){ + if (a==b) + return a; + ll final = 0; + ll rev = 0; + while(b){ + final*=2; + if (a%2==1 || a != b) + final++; + a/=2; + b/=2; + } + while(final){ + rev *= 2; + rev += final % 2; + final/=2; + } + return rev; +} +int main(){ + ios_base::sync_with_stdio(0); cin.tie(0); + ll a; + cin>>a; + for(ll itr{0};itr>n>>m; + ll x = n; + ll l = max(0ll,(x-m)); + ll r = x+m; + x = bitwiseor(l,r); + cout<