HackerEarth AND operation problem solution YASH PAL, 31 July 2024 In this HckerEarth AND operation problem solution you are given an array A of length N. You are also given Q tasks. Each task is of the following type: L R V: Apply the bitwise-and operator with V for all Ai where L <= i <= R You need to print the array after performing all the tasks. HackerEarth AND operation problem solution. #include <bits/stdc++.h>using namespace std;int main() { vector<int> mp[32]; int n,q; cin>>n>>q; for(int i=0;i<n;i++){ long x; cin>>x; for(int j=0;j<32;j++){ if(x%2) mp[j].push_back(i+1); x/=2; } } for(int i=0;i<q;i++){ int l,r,val; cin>>l>>r>>val; for(int j=0;j<32;j++){ if(val%2==0){ auto it1=lower_bound(mp[j].begin(),mp[j].end(),l); auto it2=lower_bound(mp[j].begin(),mp[j].end(),r+1); if(it1!=it2) mp[j].erase(it1,it2); } val/=2; } } int ans[n+5]; memset(ans,0,sizeof(ans)); for(int i=0;i<32;i++){ auto it=mp[i].begin(); for(;it!=mp[i].end();++it) ans[*it]+=(pow(2,i)); } for(int i=1;i<=n;i++) cout<<ans[i]<<" "; return 0;} Second solution #include<bits/stdc++.h>using namespace std;int cnt[100005][32];vector<int> AND_Queries (vector<int> Arr, vector<int> Val, vector<int> L, int N, int Q, vector<int> R) { for(int i=0;i<Q;i++) { int l=L[i],r=R[i],v=Val[i]; for(int j=0;j<30;j++) { if(! (v&(1<<j))) { cnt[l-1][j]++; cnt[r][j]--; } } } for(int i=0;i<Arr.size();i++) { int num=0; for(int j=0;j<30;j++) { if(i)cnt[i][j]+=cnt[i-1][j]; if(cnt[i][j]){} else { if(Arr[i]&(1<<j))num|=1<<j; } } Arr[i]=num; } return Arr;}int main() { ios::sync_with_stdio(0); cin.tie(0); int N; cin >> N; int Q; cin >> Q; vector<int> Arr(N); for(int i_Arr=0; i_Arr<N; i_Arr++) { cin >> Arr[i_Arr]; } vector<int> L(Q),R(Q),Val(Q); for(int i_L=0; i_L<Q; i_L++) { cin >> L[i_L] >> R[i_L] >> Val[i_L]; } vector<int> out_; out_ = AND_Queries(Arr, Val, L, N, Q, R); cout << out_[0]; for(int i_out_=1; i_out_<out_.size(); i_out_++) { cout << " " << out_[i_out_]; }} coding problems