Skip to content

Commit 429cd2e

Browse files
authored
Create 1749-ListRemovals.cpp
1 parent b05a1e6 commit 429cd2e

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
// JAI BAJARANG BALI
2+
3+
// manitianajay45
4+
5+
// give me some sunshine, give me some rain ,give me another chance to grow up once again....
6+
7+
// sab moh maya hai....
8+
9+
#include <bits/stdc++.h>
10+
using namespace std;
11+
12+
#define ll long long
13+
14+
vector<ll> seg(800005,0);
15+
16+
17+
void set1(ll i,ll val,ll x,ll l,ll r){
18+
if(r-l==1){
19+
seg[x]=val;
20+
return ;
21+
}
22+
23+
ll mid=(l+r)/2;
24+
25+
if(i<mid){
26+
set1(i,val,2*x+1,l,mid);
27+
}else{
28+
set1(i,val,2*x+2,mid,r);
29+
}
30+
31+
seg[x]=seg[2*x+1]+seg[2*x+2];
32+
}
33+
ll vll=0;
34+
ll in(ll val,ll x,ll l,ll r){
35+
if(r-l==1){
36+
return l;
37+
}
38+
39+
ll mid=(l+r)/2;
40+
41+
if(vll+seg[2*x+1]>=val){
42+
return in(val,2*x+1,l,mid);
43+
}
44+
vll+=seg[2*x+1];
45+
return in(val,2*x+2,mid,r);
46+
47+
}
48+
49+
50+
51+
52+
int main()
53+
{
54+
55+
ios_base::sync_with_stdio(false);
56+
57+
cin.tie(NULL);
58+
59+
60+
ll n;
61+
cin>>n;
62+
ll arr[n];
63+
for(ll i=0;i<n;i++)
64+
{
65+
cin>>arr[i];
66+
set1(i,1,0,0,n);
67+
68+
}
69+
70+
// for(ll i=0;i<2*n-1;i++){
71+
// cout<<seg[i]<<" ";
72+
// }
73+
// cout<<endl;
74+
75+
76+
ll q=n;
77+
while(q--){
78+
ll v;
79+
cin>>v;
80+
vll=0;
81+
82+
ll i=in(v,0,0,n);
83+
// cout<<i<<" i";
84+
85+
cout<<arr[i]<<" ";
86+
87+
set1(i,0,0,0,n);
88+
}
89+
cout<<endl;
90+
return 0;
91+
}

0 commit comments

Comments
 (0)