• Source
    1. #include <iostream>
    2. using namespace std;
    3.  
    4. int main() {
    5. #include <iostream>
    6. #include <map>
    7. using namespace std;
    8. map<long long,long long> a;
    9. long long rec(long long x)
    10. {
    11. if(x==0)
    12. return 0;
    13. long long c=a[x];
    14. if(c==0)
    15. {
    16. long long c=x-x%12;
    17. long long d=max(x,rec(x/2)+rec(x/3)+rec(x/4));
    18. a[x]=d;
    19. }
    20. return a[x];
    21. }
    22. int main()
    23. {
    24. long long n;
    25.  
    26. while(cin>>n)
    27. {
    28. cout<<rec(n)<<endl;
    29. }
    30. return 0;
    31. }
    32. return 0;
    33. }