Language: C++

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll INF=10000000000000000LL;

ll mul(ll a,ll b){
  if(a>INF/b)return INF;
  return a*b;
}

ll n,m,a,b,p,q;

void dfs(ll x,ll sum,vector<ll> &t,vector<ll> &T){
  if(x==(int)t.size()){
    T.push_back(sum);
  }else{
    dfs(x+1,sum,t,T);
    dfs(x+1,min(INF,sum+t[x]),t,T);
  }
}

ll solve(){
  if(a==1 && b==1){
    ll d=p+q;
    ll total=mul(d,n);
    if(total <= m)return m-total;
    return min( m%total , m-m%total);
  }
  
  vector<ll> t, u;
  ll ak=1,bk=1;
  for(int i=0;i< min(n,40) ;i++){
    if(i&1)t.push_back( mul(ak,p) + mul(bk,q) );
    else   u.push_back( mul(ak,p) + mul(bk,q) );
    ak=mul(ak,a);
    bk=mul(bk,b);
  }
  
  vector<ll> T,U;
  dfs(0,0,t,T);
  dfs(0,0,u,U);
    
  sort(T.begin(),T.end());
  sort(U.begin(),U.end());
  
  ll res=m;
  for(int i=0;i<(int)T.size();i++){
    ll target=m-T[i];
    int index=lower_bound(U.begin(),U.end(),target)-U.begin();
    for(int j=index-2;j<=index+2;j++){
      if(0<=j && j<(int)U.size()){
        res=min( res, abs( m- ( T[i]+U[j] )) );      
      }
    }
  }
  
  return res;
}

int main(){
  cin>>n>>m>>a>>b>>p>>q;
  cout<<solve()<<endl;
  return 0;
}

Compiler output:
a.cc: In function 'll solve()':
a.cc:32:21: error: no matching function for call to 'min(ll&, int)'
   32 |   for(int i=0;i< min(n,40) ;i++){
      |                  ~~~^~~~~~
In file included from /usr/include/c++/14/algorithm:60,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:51,
                 from a.cc:1:
/usr/include/c++/14/bits/stl_algobase.h:233:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  233 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/14/bits/stl_algobase.h:233:5: note:   template argument deduction/substitution failed:
a.cc:32:21: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   32 |   for(int i=0;i< min(n,40) ;i++){
      |                  ~~~^~~~~~
/usr/include/c++/14/bits/stl_algobase.h:281:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  281 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/14/bits/stl_algobase.h:281:5: note:   candidate expects 3 arguments, 2 provided
In file included from /usr/include/c++/14/algorithm:61:
/usr/include/c++/14/bits/stl_algo.h:5686:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(initializer_list<_Tp>)'
 5686 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/14/bits/stl_algo.h:5686:5: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/14/bits/stl_algo.h:5696:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(initializer_list<_Tp>, _Compare)'
 5696 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/14/bits/stl_algo.h:5696:5: note:   template argument deduction/substitution failed:
a.cc:32:21: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   32 |   for(int i=0;i< min(n,40) ;i++){
      |                  ~~~^~~~~~