【数学】Password, ACM/ICPC Daejon 2010, UVa1262

来源:互联网 发布:女神联盟攻略软件 编辑:程序博客网 时间:2024/04/29 15:11
#include<bits/stdc++.h>using namespace std;int T,k;char s1[10][10],s2[10][10],c[10][10];int a[6][26],b[6],ans[10];int main(){ios::sync_with_stdio(false);cin>>T;while(T--){cin>>k;memset(a,0,sizeof(a));memset(b,0,sizeof(b));memset(c,0,sizeof(c));for(int i=1;i<=6;i++)cin>>s1[i]+1;for(int i=1;i<=6;i++)cin>>s2[i]+1;for(int j=1;j<=5;j++){for(int i=1;i<=6;i++)a[j][s1[i][j]-'A']=1;}for(int j=1;j<=5;j++){for(int i=1;i<=6;i++)if(a[j][s2[i][j]-'A']==1)a[j][s2[i][j]-'A']=2;}for(int i=1;i<=5;i++){for(int j=0;j<26;j++){if(a[i][j]>1){b[i]++;c[i][++*c[i]]=j+'A';}}}for(int i=4;i>=1;i--)b[i]*=b[i+1];if(b[1]<k){cout<<"NO"<<endl;continue;}else{for(int i=1;i<=4;i++){for(int j=1;j<=b[i];j++){if(k<=j*b[i+1]){ans[i]=j;k-=(j-1)*b[i+1];break;}}}}ans[5]=k;for(int i=1;i<=5;i++)cout<<c[i][ans[i]];cout<<endl;}return 0;}

1 0
原创粉丝点击