fork(2) download
  1. #include<cstdio>
  2. #include<iostream>
  3. #include<vector>
  4. #define N 1000000
  5. using namespace std;
  6. vector<int>v[N];
  7. void dp()
  8. {
  9. v[0].push_back(0);
  10. v[1].push_back(1);
  11. v[2].push_back(2);
  12. int i,x,y;
  13. for(i=3;i<=N;i=i+2)
  14. {
  15. x=v[i-1][0]+1;
  16. y=v[(i+1)/2][0]+2;
  17. v[i+1].push_back(y-1);
  18. if(x<y)
  19. {
  20. v[i].push_back(x);
  21. }
  22. else
  23. {
  24. v[i].push_back(y);
  25. }
  26. }
  27. }
  28. int main()
  29. {
  30. dp();
  31. int s;
  32. cin>>s;
  33. cout<<v[s][0];
  34.  
  35. return 0;
  36. }
  37.  
Success #stdin #stdout 0.04s 69824KB
stdin
7
stdout
5