Pagini recente » Cod sursa (job #1029603) | Cod sursa (job #3287842) | Cod sursa (job #321098) | Cod sursa (job #236889) | Cod sursa (job #374033)
Cod sursa(job #374033)
#include<stdio.h>
#include<cassert>
#define nmax 64
int n,t,nr;
int sol[nmax];
long long k,d[nmax];
void calc()
{
int i;
for(i=1;i<=n;i++)
d[i]=(long long)1<<((long long)n-i);
}
void rez()
{
long long x=0;
int i;
nr=0;
for(i=1;i<=n && x<k;i++)
if(x<k-d[i])
x+=d[i];
else
{
x++;
sol[++nr]=i;
}
}
int main()
{
freopen("submultimi.in","r",stdin);
freopen("submultimi.out","w",stdout);
assert(scanf("%d%d",&n,&t)==2);
assert(1<=n && n<=60);
assert(1<=t && t<=1000);
calc();
int i,j;
for(i=1;i<=t;i++)
{
assert(scanf("%lld",&k)==1);
rez();
assert(1<=nr && nr<=n);
for(j=1;j<=nr;j++)
printf("%d ",sol[j]);
printf("\n");
}
return 0;
}