fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define int long long
  5. #define fi first
  6. #define se second
  7. #define pb push_back
  8. #define all(v) v.begin(),v.end()
  9. #define mk make_pair
  10. #define task "test"
  11. typedef pair<int,int> pii;
  12.  
  13. const int maxn=1e6,MOD=1e9+7,INF=1e18;
  14. int n,m,a[maxn],b[maxn];
  15. string s;
  16. int mu2(int n){
  17. int k = 0;
  18. while(n%2==0){
  19. n/=2;
  20. k++;
  21. }
  22. return k;
  23. }
  24. int32_t main(){
  25. ios::sync_with_stdio(false);
  26. cin.tie(0);cout.tie(0);
  27. cin >> n ;
  28. int sum = 0;
  29. for(int i=1;i<=n;i++){
  30. cin >> a[i];
  31. sum += a[i];
  32. int t = mu2(a[i]);
  33. b[t]++;
  34. }
  35. cin >> s;
  36. for(int i=0;i<(int)s.size();i++){
  37. if(s[i]=='1'){
  38. sum -= b[0];
  39. b[1] += b[0];
  40. b[0] = 0;
  41. }else{
  42. for(int j=1;j<32;j++){
  43. sum = sum - b[j]*(1LL << (j-1));
  44. b[j-1] += b[j];
  45. b[j] = 0;
  46. }
  47. }
  48. cout << sum << '\n';
  49. }
  50. return 0;
  51. }
  52.  
Success #stdin #stdout 0s 5284KB
stdin
Standard input is empty
stdout
Standard output is empty