don't know why..
Code: Select all
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define KEYLENMAX 100
int key[KEYLENMAX];
char teks[KEYLENMAX+1],res[KEYLENMAX+1];
int main(){
int i,n,j,keylen,len,lastidx,max,idx;
scanf("%d",&n);
for(j=0;j<n;++j){
scanf("%d",&keylen);
for(i=0;i<keylen;++i)scanf("%d",key+i);
gets(teks);
gets(teks);
len=strlen(teks);
lastidx=-1;
for(i=0;i<len;++i)
if(isupper(teks[i]))teks[++lastidx]=teks[i];
++lastidx;
max=0;
memset(res,' ',sizeof(res));
if(keylen>lastidx)keylen=lastidx;
for(i=0;i<keylen;++i){
switch(key[i]){
case 1: idx=1;break;
case 2: idx=2;break;
case 3: idx=3;break;
case 5: idx=4;break;
case 8: idx=5;break;
case 13: idx=6;break;
case 21: idx=7;break;
case 34: idx=8;break;
case 55: idx=9;break;
case 89: idx=10;break;
case 144: idx=11;break;
case 233: idx=12;break;
case 377: idx=13;break;
case 610: idx=14;break;
case 987: idx=15;break;
case 1597: idx=16;break;
case 2584: idx=17;break;
case 4181: idx=18;break;
case 6765: idx=19;break;
case 10946: idx=20;break;
case 17711: idx=21;break;
case 28657: idx=22;break;
case 46368: idx=23;break;
case 75025: idx=24;break;
case 121393: idx=25;break;
case 196418: idx=26;break;
case 317811: idx=27;break;
case 514229: idx=28;break;
case 832040: idx=29;break;
case 1346269: idx=30;break;
case 2178309: idx=31;break;
case 3524578: idx=32;break;
case 5702887: idx=33;break;
case 9227465: idx=34;break;
case 14930352: idx=35;break;
case 24157817: idx=36;break;
case 39088169: idx=37;break;
case 63245986: idx=38;break;
case 102334155: idx=39;break;
case 165580141: idx=40;break;
case 267914296: idx=41;break;
case 433494437: idx=42;break;
case 701408733: idx=43;break;
case 1134903170: idx=44;break;
case 1836311903: idx=45;break;
}
res[idx-1]=teks[i];
if(idx>max)max=idx;
}
res[max]='\0';
puts(res);
}
return 0;
}