Language: C++

#include<iostream>
#include<map>

int64_t n,a,b,c,d;
std::map<int64_t,int64_t> memo;

int64_t dfs(int64_t n){
  if(memo.count(n))return memo[n];
  int64_ t tmp = (1LL<<58);
  if(n%2==0)tmp = std::min(tmp,dfs(n/2)+a);
  else{
    tmp = std::min(tmp,dfs((n+1)/2)+a+d);
    tmp = std::min(tmp,dfs((n-1)/2)+a+d);
  }
  if(n%3==0)tmp = std::min(tmp,dfs(n/3)+b);
  else{
    int64_t low3 = n/3*3;
    int64_t high3 = (n/3+1)*3;
    tmp = std::min(tmp,dfs(low3)+b+d*(n-low3));
    tmp = std::min(tmp,dfs(high3)+b+d*(high3-n));
  }
  if(n%5==0)tmp = std::min(tmp,dfs(n/5)+c);
  else{
    int64_t low5 = n/5*5;
    int64_t high5 = (n/5+1)*5;
    tmp = std::min(tmp,dfs(low5)+c+d*(n-low5));
    tmp = std::min(tmp,dfs(high5)+c+d*(high5-n));
  }
  return memo[n] = tmp;
}

void solve(){
  std::cin>>n>>a>>b>>c>>d;
  memo.clear();
  dfs(n);
  memo[0] = 0;
  memo[1] = d;
  std::cout<< memo[n] <std::endl;
}

int main(){
  int t;
  std::cin>>t;
  while(t--)solve();
}


Compiler output:
a.cc: In function 'int64_t dfs(int64_t)':
a.cc:9:3: error: 'int64_' was not declared in this scope; did you mean 'int64_t'?
    9 |   int64_ t tmp = (1LL<<58);
      |   ^~~~~~
      |   int64_t
a.cc:10:13: error: 'tmp' was not declared in this scope; did you mean 'tm'?
   10 |   if(n%2==0)tmp = std::min(tmp,dfs(n/2)+a);
      |             ^~~
      |             tm
a.cc:12:5: error: 'tmp' was not declared in this scope; did you mean 'tm'?
   12 |     tmp = std::min(tmp,dfs((n+1)/2)+a+d);
      |     ^~~
      |     tm
a.cc:15:13: error: 'tmp' was not declared in this scope; did you mean 'tm'?
   15 |   if(n%3==0)tmp = std::min(tmp,dfs(n/3)+b);
      |             ^~~
      |             tm
a.cc:19:5: error: 'tmp' was not declared in this scope; did you mean 'tm'?
   19 |     tmp = std::min(tmp,dfs(low3)+b+d*(n-low3));
      |     ^~~
      |     tm
a.cc:22:13: error: 'tmp' was not declared in this scope; did you mean 'tm'?
   22 |   if(n%5==0)tmp = std::min(tmp,dfs(n/5)+c);
      |             ^~~
      |             tm
a.cc:26:5: error: 'tmp' was not declared in this scope; did you mean 'tm'?
   26 |     tmp = std::min(tmp,dfs(low5)+c+d*(n-low5));
      |     ^~~
      |     tm
a.cc:29:20: error: 'tmp' was not declared in this scope; did you mean 'tm'?
   29 |   return memo[n] = tmp;
      |                    ^~~
      |                    tm
a.cc: In function 'void solve()':
a.cc:38:23: error: no match for 'operator<' (operand types are 'std::basic_ostream<char>::__ostream_type' {aka 'std::basic_ostream<char>'} and '<unresolved overloaded function type>')
   38 |   std::cout<< memo[n] <std::endl;
      |   ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
In file included from /usr/include/c++/14/string:48,
                 from /usr/include/c++/14/bits/locale_classes.h:40,
                 from /usr/include/c++/14/bits/ios_base.h:41,
                 from /usr/include/c++/14/ios:44,
                 from /usr/include/c++/14/ostream:40,
                 from /usr/include/c++/14/iostream:41,
                 from a.cc:1:
/usr/include/c++/14/bits/stl_iterator.h:448:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator<(const reverse_iterator<_Iterator>&, const reverse_iterator<_Iterator>&)'
  448 |     operator<(const reverse_iterator<_Iterator>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:448:5: note:   template argument deduction/substitution failed:
a.cc:38:29: note:   'std::basic_ostream<char>::__ostream_type' {aka 'std::basic_ostream<char>'} is not derived from 'const std::reverse_iterator<_Iterator>'
   38 |   std::cout<< memo[n] <std::endl;
      |                             ^~~~
/usr/include/c++/14/bits/stl_iterator.h:493:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator<(const reverse_iterator<_Iterator>&, const reverse_iterator<_IteratorR>&)'
  493 |     operator<(const reverse_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:493:5: note:   template argument deduction/substitution failed:
a.cc:38:29: note:   'std::basic_ostream<char>::__ostream_type' {aka 'std::basic_ostream<char>'} is not derived from 'const std::reverse_iterator<_Iterator>'
   38 |   std::cout<< memo[n] <std::endl;
      |                             ^~~~
/usr/include/c++/14/bits/stl_iterator.h:1694:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator<(const move_iterator<_IteratorL>&, const move_iterator<_IteratorR>&)'
 1694 |     operator<(const move_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:1694:5: note:   template argument deduction/substitution failed:
a.cc:38:29: note:   'std::basic_ostream<char>::__ostream_type' {aka 'std::basic_ostream<char>'} is not derived from 'const std::move_iterator<_IteratorL>'
   38 |   std::cout<< memo[n] <std::endl;
      |                             ^~~~
/usr/include/c++/14/bits/stl_iterator.h:1760:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator<(const move_iterator<_IteratorL>&, const move_iterator<_IteratorL>&)'
 1760 |     operator<(const move_iterator<_Iterator>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:1760:5: note:   template argument deduction/substitution failed:
a.cc:38:29: note:   'std::basic_ostream<char>::__ostream_type' {aka 'std::basic_ostream<char>'} is not derived from 'const std::move_iterator<_IteratorL>'
   38 |   std::cout<< memo[n] <std::endl;
      |                             ^~~~
In file included from /usr/include/c++/14/bits/stl_algobase.h:64,
                 from /usr/include/c++/14/string:51:
/usr/include/c++/14/bits/stl_pair.h:1045:5: note: candidate: 'template<class _T1, class _T2> constexpr bool std::operator<(const pair<_T1, _T2>&, const pair<_T1, _T2>&)'
 1045 |     operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_pair.h:1045:5: note:   template argument deduction/substitution failed:
a.cc:38:29: note:   'std::basic_ostream<char>::__ostream_type' {aka 'std::basic_ostream<char>'} is not derived from 'const std::pair<_T1, _T2>'
   38 |   std::cout<< memo[n] <std::endl;
      |                             ^~~~
In file included from /usr/include/c++/14/bits/basic_string.h:47,
                 from /usr/include/c++/14/string:54:
/usr/include/c++/14/string_view:673:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator<(basic_string_view<_CharT, _Traits>, basic_string_view<_CharT, _Traits>)'
  673 |     operator< (basic_string_view<_CharT, _Traits> __x,
      |     ^~~~~~~~
/usr/include/c++/14/string_view:673:5: note:   template argument deduction/substitution failed:
a.cc:38:29: note:   'std::basic_ostream<char>' is not derived from 'std::basic_string_view<_CharT, _Traits>'
   38 |   std::cout<< memo[n] <std::endl;
      |                             ^~~~
/usr/include/c++/14/string_view:680:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator<(basic_string_view<_CharT, _Traits>, __type_identity_t<basic_string_view<_CharT, _Traits> >)'
  680 |     operator< (basic_string_view<_CharT, _Traits> __x,
      |     ^~~~~~~~
/usr/include/c++/14/string_view:680:5: note:   template argument deduction/substitution failed:
a.cc:38:29: note:   'std::basic_ostream<char>' is not derived from 'std::basic_string_view<_CharT, _Traits>'
   38 |   std::cout<< memo[n] <std::endl;
      |                             ^~~~
/usr/include/c++/14/string_view:688:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator<(__type_identity_t<basic_string_view<_CharT, _Traits> >, basic_string_view<_CharT, _Traits>)'
  688 |     operator< (__type_identity_t<basic_string_view<_CharT, _Traits>> __x,
      |     ^~~~~~~~
/usr/include/c++/14/string_view:688:5: note:   template argument deduction/substitution failed:
a.cc:38:29: note:   couldn't deduce template parameter '_CharT'
   38 |   std::cout<< memo[n] <std::endl;
      |                             ^~~~
/usr/include/c++/14/bits/basic_string.h:3874:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator<(const __cxx11::basic_string<_CharT, _Traits, _Allocator>&, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 3874 |     operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/basic_string.h:3874:5: note:   template argument deduction/substitution failed:
a.cc:38:29: note:   'std::basic_ostream<char>::__ostream_type' {aka 'std::basic_ostream<char>'} is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
   38 |   std::cout<< memo[n] <std::endl;
      |                             ^~~~
/usr/include/c++/14/bits/basic_string.h:3888:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator<(const __cxx11::basic_string<_CharT, _Traits, _Allocator>&, const _CharT*)'
 3888 |     operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/basic_string.h:3888:5: note:   template argument deduction/substitution failed:
a.cc:38:29: note:   'std::basic_ostream<char>::__ostream_type' {aka 'std::basic_ostream<char>'} is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
   38 |   std::cout<< memo[n] <std::endl;
      |                             ^~~~
/usr/include/c++/14/bits/basic_string.h:3901:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator<(const _CharT*, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 3901 |     operator<(const _CharT* __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/basic_string.h:3901:5: note:   template argument deduction/substitution failed:
a.cc:38:29: note:   mismatched types 'const _CharT*' and 'std::basic_ostream<char>'
   38 |   std::cout<< memo[n] <std::endl;
      |                             ^~~~
In file included from /usr/include/c++/14/bits/memory_resource.h:47,
                 from /usr/include/c++/14/string:68:
/usr/include/c++/14/tuple:2600:5: note: candidate: 'template<class ... _TElements, class ... _UElements> constexpr bool std::operator<(const tuple<_UTypes ...>&, const tuple<_Elements ...>&)'
 2600 |     operator<(const tuple<_TElements...>& __t,
      |     ^~~~~~~~
/usr/include/c++/14/tuple:2600:5: note:   template argument deduction/substitution failed:
a.cc:38:29: note:   'std::basic_ostream<char>::__ostream_type' {aka 'std::basic_ostream<char>'} is not derived from 'const std::tuple<_UTypes ...>'
   38 |   std::cout<< memo[n] <std::endl;
      |                             ^~~~
In file included from /usr/include/c++/14/map:63,
                 from a.cc:2:
/usr/include/c++/14/bits/stl_map.h:1550:5: note: candidate: 'template<class _Key, class _Tp, class _Compare, class _Alloc> bool std::operator<(const map<_Key, _Tp, _Compare, _Allocator>&, const map<_Key, _Tp, _Compare, _Allocator>&)'
 1550 |     operator<(const map<_Key, _Tp, _Compare, _Alloc>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_map.h:1550:5: note:   template argument ded