#include <iostream> #include <algorithm> #include <cmath> using namespace std; const int N(1009),M(2100000000); long long num[N]={0},data[21]={0}; bool comp(const long long &x,const long long &y) { return x<y; } int main() { int k,n,b,count(0); cin>>k>>n; b=ceil(log(M)/log(k)); data[0]=1; for(int i=1;i<=b;i++) data[i]=data[i-1]*k; for(int i=0;count<n;i++) { fill(num,num+N,0); num[0]=1;num[1]=data[i]; for(int j=i-1;j>=0;j--) { int t=num[0]; for(int k=1;k<=t;k++) { num[0]++; num[num[0]]=data[j]+num[k]; } } count+=num[0]; } count-=num[0]; sort(num+1,num+1+num[0],comp); cout<<(int)num[n-count]<<endl; return 0; } /************************************************************** Problem: 2263 User: admin Language: C++ Result: Accepted Time:50 ms Memory:2200 kb ****************************************************************/