➤ Problem Link : 371D. Vessels
✅ C++ Solution :
#include<bits/stdc++.h> using namespace std; #define ll long long int int main() { int n; cin>>n; ll arr[n+1]; for(int i=1;i<=n;i++) cin>>arr[i]; ll val[n+1]; memset(val,0,sizeof(val)); int m; cin>>m; set<int> s; for(int i=1;i<=n;i++) s.insert(i); int a,b,c; while(m--) { cin>>a; if(a==2) { cin>>b; cout<<val[b]<<"\n"; } else { cin>>b>>c; while(c>0) { auto it=s.lower_bound(b); if(it==s.end()) break; b=*it; if(c>arr[b]) { c-=arr[b]; val[b]+=arr[b]; arr[b]=0; s.erase(b); } else { arr[b]-=c; val[b]+=c; c=0; } } } } }
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!