http://acm.pku.edu.cn/JudgeOnline/problem?id=1023
特殊的二进制转换
#include <stdio.h>
int main()
{
int time,length;
__int64 number;
char str[70];
scanf("%d",&time);
while(time --)
{
scanf("%d%s%I64d",&length,str,&number);
while(length --)
{
if(number%2)
{
if(str[length] == 'p')//加权
number = number-1;
else//补位
number = number+1;
str[length] = '1';
}
else
str[length] = '0';
number = number/2;//除二
}
if(number%2)
printf("Impossible/n");
else
printf("%s/n",str);
}
return 0 ;
}
/*
2
3
pnp
6
4
ppnn
10
Impossible
1110
*/