Advertisement
Zeinab_Hamdy

Untitled

Oct 5th, 2023
1,166
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.03 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define nl "\n"
  4. #define fi first
  5. #define se second
  6. #define pb push_back
  7. #define ll long long
  8. #define ull unsigned ll
  9. #define RV  return void
  10. // #define inf 2000000000
  11. #define sz(x) int(x.size())
  12. #define all(v) v.begin(), v.end()
  13. #define rall(v) v.rbegin(), v.rend()
  14. #define Mini(x) *min_element(all(x))
  15. #define Maxi(x) *max_element(all(x))
  16. #define fixed(n) fixed << setprecision(n)
  17. #define ceil(w, m) (((w) / (m)) + ((w) % (m) ? 1 : 0))
  18. #define cin(v) for (auto&i:v) cin >> i;
  19. #define cout(v) for (auto&i:v) cout << i << " ";
  20. #define clr(memo, x) memset(memo, x, sizeof memo)
  21. #define updmin(a, b) a = min(a, b)
  22. #define updmax(a, b) a = max(a, b)
  23. #define vi vector < int >
  24. #define vl vector < ll >
  25. #define vc vector < char >
  26. #define vs vector < string >
  27. #define v2i vector < vector < int > >
  28. #define v2l vector < vector < int > >
  29. #define seti set < int >
  30. #define setl set < ll >
  31. #define mapii map < int , int >
  32. #define mapll map < ll , ll >
  33. #define mapli map < ll , int >
  34. #define mapci map < char , int >
  35. #define mapsi map < string , int >
  36. #define pll pair < ll , ll >
  37. #define pii pair < int , int >
  38. #define range(l,r,x) for(int i=l ; i < r ; i+=x)
  39. #define FastCode ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
  40. vector < string > ternary= {"NO\n" , "YES\n"};
  41.  
  42. void  Zainab(){
  43.             #ifndef ONLINE_JUDGE
  44.               freopen("input.txt", "r", stdin);
  45.               freopen("output.txt", "w", stdout);
  46.             #endif
  47. }
  48.  
  49.  
  50. /*================================  solution  ================================ */
  51.  
  52.  
  53. //  max -> pow ( 9 , 18 )
  54.  
  55. multiset < ll > st ;
  56.  
  57.  
  58.  
  59. void rec(string & s , int idx , ll num , bool flag){
  60.  
  61.     if(idx == sz(s)){
  62.         st.insert(num);
  63.         return ;
  64.     }
  65.  
  66.    
  67.     for(int i =0 ; i <= 9 ; i++){
  68.          if(!flag and (i+'0') > s[idx]) continue;
  69.          rec(s , idx +1 , num * i , flag or (i+'0') < s[idx] );
  70.     }
  71.  
  72. }
  73.  
  74. void rec2(string & s , int idx , ll num , bool flag){
  75.  
  76.     if(idx == sz(s)){
  77.         auto it = st.find(num) ;
  78.         if(it!=st.end())
  79.            st.erase( it);
  80.         return ;
  81.     }
  82.  
  83.     for(int i =0 ; i <= 9 ; i++){
  84.          if(!flag and (i+'0') > s[idx]) continue;
  85.          rec2(s , idx +1 , num * i , flag or (i+'0') < s[idx] );
  86.     }
  87.  
  88. }
  89.  
  90.  
  91. void myCode(){
  92.  
  93.     st.clear();
  94.     string l , r;
  95.     cin >> l >> r;
  96.     rec(r , 0 , 1 , 0);
  97.  
  98.    
  99.     //  miuns one from string l
  100.     if(l.back() == '0'){
  101.          l[sz(l) - 2]--;
  102.          l.back()='9';
  103.     }else l.back()--;
  104.  
  105.     if(l=="0") l ="";
  106.  
  107.  
  108.     // cout << l << nl;
  109.    
  110.     for(auto& i : st) cout << i << " ";
  111.  
  112.     rec2(l , 0 , 1 , 0);
  113.     cout << nl << nl ;
  114.      for(auto& i : st) cout << i << " ";
  115.     // cout << *st.rbegin();
  116.  
  117. }
  118.  
  119.  
  120. int main(){
  121.                                    FastCode ;
  122.                                      Zainab() ;
  123.  
  124.         int testCase=1;
  125.             // cin >> testCase ;
  126.         for(int i=1 ; i<= testCase ; i++){
  127.             myCode();
  128.         }
  129.      
  130.  
  131.     return 0;
  132. }
Advertisement
Comments
Add Comment
Please, Sign In to add comment
Advertisement