编码与解码-UVA

来源:互联网 发布:gif动画软件下载 编辑:程序博客网 时间:2024/06/05 11:41
#include<iostream>#include<cstdio>#include<vector> #include<cstring>using namespace std;bool has[2][30][10];string s;int T,N;int ap[10]; vector<char> vp[10];void init(){    memset(has,false,sizeof(has));    memset(vp,0,sizeof(vp));}int main(){    cin>>T;    while(T--){        init();        cin>>N;        for(int i=0;i<6;i++){            cin>>s;            for(int j=0;j<5;j++)                has[0][s[j]-'A'][j]=true;        }        for(int i=0;i<6;i++){            cin>>s;            for(int j=0;j<5;j++)                has[1][s[j]-'A'][j]=true;        }        for(int i=0;i<5;i++){            for(int j=0;j<30;j++){                if(has[0][j][i]&&has[1][j][i])                    vp[i].push_back(j+'A');            }        }        ap[5]=1;        for(int i=4;i>=0;i--)ap[i]=ap[i+1]*vp[i].size();        if(N>ap[0]){            cout<<"NO"<<endl;            continue;        }        N--;        for(int i=0;i<5;i++){            cout<<vp[i][N/ap[i+1]];            N=N%ap[i+1];        }        cout<<endl;    }       return 0;} 
0 0