Advertisement
KinDeR___

Untitled

Oct 7th, 2023
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. #define isz(x) int(x.size())
  4. #define all(x) x.begin(),x.end()
  5. #define ll long long
  6. #define pii pair<int,int>
  7. #define fi first
  8. #define se second
  9. #define isz(x) int(x.size())
  10. #define ull unsigned long long
  11. #define vi vector<int>
  12. #define vll vector<ll>
  13. #define vch vector<char>
  14. #define vvch vector<vch>
  15. #define vvi vector<vector<int>>
  16. #define vvvi vector<vvi>
  17. #define vvll vector<vector<ll>>
  18. #define vpii vector<pair<int,int>>
  19. #define vvpii vector<vpii>
  20. #define forn(i,n) for(int i=0;i<(int)n;++i)
  21. #define pb push_back
  22.  
  23. using namespace std;
  24.  
  25. const int UNDEF = -1;
  26. const int MOD = 1e9 + 7;
  27. const int INF = 1e9;
  28.  
  29. ll solve(ll R,vll& p){
  30. int N=isz(p);
  31.  
  32. ll ans=0;
  33. for(int mask=1;mask<(1<<N);++mask){
  34. ll bits=0,mult=1;
  35. for(int j=0;j<N;++j){
  36. if(mask&(1<<j)){
  37. if(1.0L*mult*p[j]>R){
  38. mult=R+1;
  39. break;
  40. }
  41. mult*=p[j];
  42. bits++;
  43. }
  44. }
  45. if(bits&1) ans+=R/mult;
  46. else ans-=R/mult;
  47. }
  48.  
  49. return ans;
  50. }
  51.  
  52.  
  53. int main() {
  54. ios::sync_with_stdio(false);
  55. cin.tie(nullptr);
  56. //freopen("input.txt", "rt", stdin);
  57. //freopen("output.txt", "wt", stdout);
  58.  
  59. ll L,R,N;
  60. cin>>L>>R>>N;
  61.  
  62. vll p(N);
  63. forn(i,N) cin>>p[i];
  64. p.erase(unique(all(p)),p.end());
  65.  
  66. cout<<solve(R,p)-solve(L-1,p);
  67.  
  68. return 0;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement