poj 1023(理解二进制的加法运算)
#include#include using namespace std; int main(){ long long n; char s[100],out[100]; int t,i,j,k,len; scanf("%d",&t); while(t--){ scanf("%d%s%lld",&k,s,&n); len = strlen(s); if(n==0){ printf("0\n"); continue; } for(j=len-1;j>-1;j--){ if(n%2==1||n%2==-1){ if(s[j]=='p'){ n = (n-1)/2; } else{ n = (n+1)/2; } out[j] = 1; } else{ out[j] = 0; n /= 2; } } if(n==0){ for(i=0;i ){ printf("%d",out[i]); } printf("\n"); } else{ printf("Impossible\n"); } } return 0; }