poj 1617 Crypto Columns
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
char ch[12],cpy[12],letter[110];
int list[12],tag[12],i,j;
while(cin>>ch&&strcmp(ch,"THEEND")!=0)
{
cin>>letter;
strcpy(cpy,ch);
sort(ch,ch+strlen(ch));
memset(tag,-1,sizeof(tag));
for(i=0;i<strlen(cpy);i++)
for( j=0;j<strlen(ch);j++)
if(tag[j]==-1&&cpy[i]==ch[j])
{
list[i]=j;tag[j]=1;
break;
}
int interval=strlen(letter)/strlen(cpy);
for(i=0;i<interval;i++)
for(j=0;j<strlen(cpy);j++)
cout<<letter[interval*list[j]+i];
cout<<endl;
}
return 0;
}