#include <iostream> #include <string> #include <cmath> #define MAXN 65 int op[MAXN]; int ans[MAXN]; using namespace std; int k; void get_ans(); long long num; int main() { //freopen("acm.acm","r",stdin); int test; string s; int i; cin>>test; while(test --) { cin>>k; cin>>s; int j = 0; for(i = s.length()-1; i >= 0; -- i) { if(s[i] == 'n') { op[j ++] = -1; } else { op[j ++] = 1; } } cin>>num; get_ans(); } } void get_ans() { int i; int is_pos; if(num > 0) { is_pos = 1; } else { is_pos = -1; } memset(ans,0,sizeof(ans)); for(i = 0; i < k; ++ i) { if(num == 0) { break; } if(num%2 ==0) { ans[i] = 0; num /= 2; } else { if(op[i]*is_pos < 0) { ans[i] = 1; if(num > 0) { num /= 2; num += 1; } else { num /= 2; num -= 1; } } else { ans[i] = 1; num /= 2; } } } if(num == 0) { for(i = k-1;i >= 0; -- i) { cout<<ans[i]; } cout<<endl; } else { cout<<"Impossible"<<endl; } }
关注我的公众号,当然,如果你对Java, Scala, Python等技术经验,以及编程日记,感兴趣的话。
技术网站地址: vmfor.com