
为什么我的二进制枚举样例过不去
怎么也看不出错误
#include<bits/stdc++.h>
namespace OIFast {
inline int read() {
int x=0,f=1;
char c=getchar();
while(!isdigit(c)) { if(c=='-') f=-1; c=getchar();}
while(isdigit(c)) { x=(x<<1)+(x<<3)+(c^48); c=getchar();}
return x*f;
};
inline void write(int x) {
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);
putchar((x%10)+'0');
};
};
using namespace OIFast;
using namespace std;
constexpr int N=1e5+7;
int a[N],cnt[N],b[N];
void solve() {
int n,k;
n=read(),k=read();
int x=0;
for(int i=0;i<n;i++) a[i]=pow(7,i);
for(int i=0;i<(1<<n);i++) {
int sum=0;
for(int j=0;j<n;j++) {
if((i>>j)&1) {
sum+=a[j];
}
}
if(cnt[sum]==0&&sum!=0) {
cnt[sum]=1;
b[++x]=sum;
}
}
sort(b+1,b+x+1);
cout<<b[k];
return ;
}
int main() {
//freopen("r","202409C.in",stdin);
//freopen("w","202409C.out",stdout);
int _=1;
//cin>>_;
while(_--) {
solve();
}
return 0;
}