Advertisement
HaciyevAlik

Untitled

Apr 2nd, 2023
688
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.18 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. using ll = long long;
  5. using ld = long double;
  6. #define pb push_back
  7. #define ff first
  8. #define ss second
  9. #define oo 1000000000
  10.  
  11. mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
  12. const int mx=1e6+5;
  13. int main(){
  14.     //ios::sync_with_stdio(false); cin.tie(0);
  15.     int n;
  16.     while(cin>>n){
  17.         bool used[mx];
  18.         int dis[mx];
  19.         memset(used,0,sizeof(used));
  20.         memset(dis,0,sizeof(dis));
  21.         queue<int> q;
  22.         q.push(n);
  23.         dis[n]=0;
  24.         used[n]=1;
  25.         while(!q.empty()){
  26.             int s=q.front(); q.pop();
  27.             if(s==1){
  28.                 break;
  29.             }
  30.             if(s%2==0 && !used[s/2]){
  31.                 used[s/2]=1;
  32.                 q.push(s/2);
  33.                 dis[s/2]=dis[s]+1;
  34.             }
  35.             if(s%3==0 && !used[s/3]){
  36.                 used[s/3]=1;
  37.                 dis[s/3]=dis[s]+1;
  38.                 q.push(s/3);
  39.             }
  40.             if(!used[s-1]){
  41.                 used[s-1]=1;
  42.                 q.push(s-1);
  43.                 dis[s-1]=dis[s]+1;
  44.             }
  45.         }
  46.         cout << dis[1] << "\n";
  47.     }
  48.     return 0;
  49. }
  50.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement