Advertisement
Guest User

Untitled

a guest
May 13th, 2020
377
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.92 KB | None | 0 0
  1. set<int> build(int n)
  2. {
  3.     set<int> ans;
  4.     int len = log(n)/log(10) + 1, i, j;
  5.     for(i = 1;i<=len;i++)
  6.     {
  7.         for(j = 1;j<=i;j++)
  8.         {
  9.             for(char k = '1';k<='9';k++)
  10.             {
  11.                 string s(j,k);
  12.                 for(char l = '0';l<='9';l++)
  13.                 {
  14.                     string s1(i - j, l);
  15.                     string num = s + s1;
  16.                     sort(begin(num),end(num));
  17.                     do{
  18.                         ans.insert(stoi(num));
  19.                     }
  20.                     while(next_permutation(begin(num),end(num)));
  21.                 }
  22.             }
  23.         }
  24.     }
  25.     return ans;
  26. }
  27.  
  28. int countWeirdNumbers(int n) {
  29.     set<int> x = build(n);
  30.     vector<int> ans;
  31.     for(auto i:x)
  32.         ans.push_back(i);
  33.     int index = lower_bound(begin(ans),end(ans), n) - ans.begin();
  34.     if(ans[index] > n)
  35.         index--;
  36.     return index + 1;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement