Sunday, January 27, 2019

[Spoj] ADACOINS - Ada and Coins

Author            : Dipu Kumar Mohanto 
                    CSE, Batch - 6
                    BRUR.
Problem Statement : ADACOINS - Ada and Coins
Source            : Spoj
Category          : Bitset
Algorithm         : Bitset
Verdict           : Accepted

  1. #include "bits/stdc++.h"  
  2.   
  3. using namespace std;  
  4.   
  5. static const int maxn = 1e5 + 5;  
  6.   
  7. int n, q, arr[maxn];  
  8. bitset <maxn> bs;  
  9. int cumsum[maxn];  
  10.   
  11. inline void calcSubSet()  
  12. {  
  13.       bs.set(0);  
  14.       for (int i = 1; i <= n; i++) bs |= (bs << arr[i]);  
  15.       cumsum[0] = 1;  
  16.       for (int i = 1; i < maxn; i++) cumsum[i] = cumsum[i-1] + (bs.test(i) == true);  
  17. }  
  18.   
  19. int main()  
  20. {  
  21.       scanf("%d %d", &n, &q);  
  22.       for (int i = 1; i <= n; i++) scanf("%d", arr+i);  
  23.       calcSubSet();  
  24.       while (q--)  
  25.       {  
  26.             int l, r;  
  27.             scanf("%d %d", &l, &r);  
  28.             int sum = cumsum[r] - cumsum[l-1];  
  29.             printf("%d\n", sum);  
  30.       }  
  31. }  

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.