Result: Accepted
Time: 5ms
Memory: 1096kB
#include<stdio.h>
int main(void) {
int T,m,k,i,flag=0;
char str[9];
scanf("%d",&T);
while(T--){
scanf("%s%d%d",str,&m,&k);
int num[32],change[32],num1[32],a[5],b[5],c[5],d[5],e[5],f[5],g[5],h[5],j=0;
for(i=0;i<8;i++){
if(str[i]=='0'){
num[j]=0;num[++j]=0;num[++j]=0;num[++j]=0;
j++;
}
else if(str[i]=='1'){
num[j]=0;num[++j]=0;num[++j]=0;num[++j]=1;
j++;
}
else if(str[i]=='2'){
num[j]=0;num[++j]=0;num[++j]=1;num[++j]=0;
j++;
}
else if(str[i]=='3'){
num[j]=0;num[++j]=0;num[++j]=1;num[++j]=1;
j++;
}
else if(str[i]=='4'){
num[j]=0;num[++j]=1;num[++j]=0;num[++j]=0;
j++;
}
else if(str[i]=='5'){
num[j]=0;num[++j]=1;num[++j]=0;num[++j]=1;
j++;
}
else if(str[i]=='6'){
num[j]=0;num[++j]=1;num[++j]=1;num[++j]=0;
j++;
}
else if(str[i]=='7'){
num[j]=0;num[++j]=1;num[++j]=1;num[++j]=1;
j++;
}
else if(str[i]=='8'){
num[j]=1;num[++j]=0;num[++j]=0;num[++j]=0;
j++;
}
else if(str[i]=='9'){
num[j]=1;num[++j]=0;num[++j]=0;num[++j]=1;
j++;
}
else if(str[i]=='a'){
num[j]=1;num[++j]=0;num[++j]=1;num[++j]=0;
j++;
}
else if(str[i]=='b'){
num[j]=1;num[++j]=0;num[++j]=1;num[++j]=1;
j++;
}
else if(str[i]=='c'){
num[j]=1;num[++j]=1;num[++j]=0;num[++j]=0;
j++;
}
else if(str[i]=='d'){
num[j]=1;num[++j]=1;num[++j]=0;num[++j]=1;
j++;
}
else if(str[i]=='e'){
num[j]=1;num[++j]=1;num[++j]=1;num[++j]=0;
j++;
}
else if(str[i]=='f'){
num[j]=1;num[++j]=1;num[++j]=1;num[++j]=1;
j++;
}
}
j=0,i=0;
do {
change[j++]=k%2;
k/=2;
} while(k!=0) ;
int numlen=j;
for(j--;j>=0;j--){
num1[i]=change[j];
i++;
}
if(m==numlen){
for(i=0;i<m;i++){
num[i]=num1[i];
}
}
else if(m>numlen){
int p=0;
for(i=0;i<m-numlen;i++)
num[i]=0;
for(i=m-numlen;i<m;i++){
num[i]=num1[p];
p++;
}
}
for(i=0;i<32;i=i+4){
if(num[i]==0&&num[i+1]==0&&num[i+2]==0&&num[i+3]==0){
if(flag==0)
printf("0");
else
printf(" 0");
}
else if(num[i]==0&&num[i+1]==0&&num[i+2]==0&&num[i+3]==1)
{
if(flag==0)
printf("1");
else
printf(" 1");
}
else if(num[i]==0&&num[i+1]==0&&num[i+2]==1&&num[i+3]==0)
{
if(flag==0)
printf("2");
else
printf(" 2");
}
else if(num[i]==0&&num[i+1]==0&&num[i+2]==1&&num[i+3]==1)
{
if(flag==0)
printf("3");
else
printf(" 3");
}
else if(num[i]==0&&num[i+1]==1&&num[i+2]==0&&num[i+3]==0)
{
if(flag==0)
printf("4");
else
printf(" 4");
}
else if(num[i]==0&&num[i+1]==1&&num[i+2]==0&&num[i+3]==1)
{
if(flag==0)
printf("5");
else
printf(" 5");
}
else if(num[i]==0&&num[i+1]==1&&num[i+2]==1&&num[i+3]==0)
{
if(flag==0)
printf("6");
else
printf(" 6");
}
else if(num[i]==0&&num[i+1]==1&&num[i+2]==1&&num[i+3]==1)
{
if(flag==0)
printf("7");
else
printf(" 7");
}
else if(num[i]==1&&num[i+1]==0&&num[i+2]==0&&num[i+3]==0)
{
if(flag==0)
printf("8");
else
printf(" 8");
}
else if(num[i]==1&&num[i+1]==0&&num[i+2]==0&&num[i+3]==1)
{
if(flag==0)
printf("9");
else
printf(" 9");
}
else if(num[i]==1&&num[i+1]==0&&num[i+2]==1&&num[i+3]==0)
{
if(flag==0)
printf("a");
else
printf(" a");
}
else if(num[i]==1&&num[i+1]==0&&num[i+2]==1&&num[i+3]==1)
{
if(flag==0)
printf("b");
else
printf(" b");
}
else if(num[i]==1&&num[i+1]==1&&num[i+2]==0&&num[i+3]==0)
{
if(flag==0)
printf("c");
else
printf(" c");
}
else if(num[i]==1&&num[i+1]==1&&num[i+2]==0&&num[i+3]==1)
{
if(flag==0)
printf("d");
else
printf(" d");
}
else if(num[i]==1&&num[i+1]==1&&num[i+2]==1&&num[i+3]==0)
{
if(flag==0)
printf("e");
else
printf(" e");
}
else if(num[i]==1&&num[i+1]==1&&num[i+2]==1&&num[i+3]==1)
{
if(flag==0)
printf("f");
else
printf(" f");
}
}
printf("\n");
}
return 0;
}