Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- by: senb1
- */
- #include <bits/stdc++.h>
- #define ll long long
- #define all(x) x.begin(), x.end()
- #define fr first
- #define sc second
- #define mk make_pair
- #define endl '\n'
- using namespace std;
- const ll inf = 1e9 + 6;
- const ll maxn = 2e5 + 5;
- void solve() {
- int n;
- cin >> n;
- vector<int> v(n), t(n);
- for (int i = 0; i < n; i++)
- cin >> v[i];
- int s = 0;
- multiset<int> st;
- for (int i = 0; i < n; i++) {
- cin >> t[i];
- if (t[i] == 1) {
- s += v[i];
- } else {
- if (s >= v[i]) {
- s -= v[i];
- st.insert(-v[i]);
- } else if (-*st.begin() > v[i]) {
- s += (-*st.begin() - v[i]);
- st.erase(st.begin());
- st.insert(-v[i]);
- }
- }
- }
- cout << st.size() << endl;
- }
- /*
- 7
- 5 8 9 3 2 7 9
- 1 1 2 2 2 1 2
- */
- int main() {
- ios::sync_with_stdio(0);
- cin.tie(0);
- int t = 1;
- // cin >> t;
- while (t--)
- solve();
- }
Advertisement
Add Comment
Please, Sign In to add comment