pastebin

Paste Search Dynamic
Recent pastes
minVal
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define read(type) readInt<type>() // Fast read
  4. #define ll long long
  5. #define nL "n"
  6. #define pb push_back
  7. #define mk make_pair
  8. #define pii pair<int, int>
  9. #define a first
  10. #define b second
  11. #define vi vector<int>
  12. #define all(x) (x).begin(), (x).end()
  13. #define umap unordered_map
  14. #define uset unordered_set
  15. #define MOD 1000000007
  16. #define imax INT_MAX
  17. #define imin INT_MIN
  18. #define exp 1e9
  19. #define sz(x) (int((x).size()))
  20.  
  21.  
  22. void solve() {
  23.     int len; cin >> len;
  24.     string st; cin >> st;
  25.     vector<int> mags; for(auto i = 0; i < len; i++) {int d; cin >> d; mags.pb(d);}
  26.    
  27.     int ans = 0;
  28.     int i = 0;
  29.  
  30.     while(i <= len) {
  31.         if (st[i] == 1) {ans+=mags[i]; i++; continue;}
  32.         cout << "continued with " << i << endl;
  33.        
  34.         ans += mags[i];
  35.         cout << ans << endl;
  36.         int j = i+1;
  37.         int minVal = mags[i];
  38.         while (j <= len) {
  39.             if (st[j] == '1') {
  40.                 ans += mags[j];
  41.                 minVal = min(minVal, mags[j]);
  42.                 j++;
  43.             } else {break;}
  44.         }
  45.         ans -= minVal;
  46.         i = j;
  47.     }
  48.     cout << ans << endl;
  49. }
  50.  
  51.  
  52.  
  53. int32_t main()
  54. {
  55.     ios_base::sync_with_stdio(false);
  56.     cin.tie(null);
  57.     int t; cin >> t;
  58.     while (t--) {
  59.         solve();
  60.     }
  61.    
  62.     return 0;
  63. }
Parsed in 0.017 seconds