#include <bits/stdc++.h>
using namespace std;
#define MAX (int)2e5 + 10
int n;
int capacity[MAX], root[MAX], litersIn[MAX];
int findRoot(int x) {
if(root[x] == x) {
return x;
}
return root[x] = findRoot(root[x]);
}
void _union(int u, int v) {
int pu = findRoot(u);
int pv = findRoot(v);
if(pu != pv) {
root[pu] = pv;
}
}
void addWater(int vessel, int litersToAdd) {
if(litersToAdd == 0 || vessel == n+1)
return;
int canBeAdded = min(capacity[vessel] - litersIn[vessel], litersToAdd);
litersIn[vessel] += canBeAdded;
if(litersIn[vessel] == capacity[vessel]) {
_union(vessel, vessel+1);
}
litersToAdd -= canBeAdded;
if(!litersToAdd) {
return;
}
addWater(findRoot(vessel), litersToAdd);
}
void reset() {
for(int i=1; i<=n+1; i++) {
root[i] = i;
litersIn[i] = 0;
}
}
int main() {
#ifndef ONLINE_JUDGE
freopen("/Users/mohtasin.m/Documents/Excercises/SWC/input.txt", "r", stdin);
freopen("/Users/mohtasin.m/Documents/Excercises/SWC/output.txt", "w", stdout);
#endif
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
while(cin>>n) {
reset();
for(int i=1; i<=n; i++) {
cin>>capacity[i];
}
int k;
cin>>k;
while(k--) {
int query, vessel;
cin>>query>>vessel;
if(query == 2) {
cout<<litersIn[vessel]<<endl;
continue;
}
int litersToAdd;
cin>>litersToAdd;
addWater(vessel, litersToAdd);
}
}
}
561. Array Partition I | 1374. Generate a String With Characters That Have Odd Counts |
1822. Sign of the Product of an Array | 1464. Maximum Product of Two Elements in an Array |
1323. Maximum 69 Number | 832. Flipping an Image |
1295. Find Numbers with Even Number of Digits | 1704. Determine if String Halves Are Alike |
1732. Find the Highest Altitude | 709. To Lower Case |
1688. Count of Matches in Tournament | 1684. Count the Number of Consistent Strings |
1588. Sum of All Odd Length Subarrays | 1662. Check If Two String Arrays are Equivalent |
1832. Check if the Sentence Is Pangram | 1678. Goal Parser Interpretation |
1389. Create Target Array in the Given Order | 1313. Decompress Run-Length Encoded List |
1281. Subtract the Product and Sum of Digits of an Integer | 1342. Number of Steps to Reduce a Number to Zero |
1528. Shuffle String | 1365. How Many Numbers Are Smaller Than the Current Number |
771. Jewels and Stones | 1512. Number of Good Pairs |
672. Richest Customer Wealth | 1470. Shuffle the Array |
1431. Kids With the Greatest Number of Candies | 1480. Running Sum of 1d Array |
682. Baseball Game | 496. Next Greater Element I |