Cod sursa(job #374012)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 15 decembrie 2009 18:27:55
Problema Submultimi Scor Ascuns
Compilator cpp Status done
Runda Marime 0.59 kb
#include<stdio.h>
#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);
	scanf("%d%d",&n,&t);
	calc();
	int i,j;
	for(i=1;i<=t;i++)
	{
		scanf("%lld",&k);
		rez();
		for(j=1;j<=nr;j++)
			printf("%d ",sol[j]);
		printf("\n");
	}
	return 0;
}