Sicily 1036 Crypto Columns

来源:互联网 发布:java 角色权限管理 编辑:程序博客网 时间:2024/06/05 08:58

最近在soj刷了几天题都RE,拿1001测试了下发现确实是系统出了bug=。=作为一个main函数简洁党总是喜欢牺牲时间调用各种函数各种for循环跑。。。第一次上csdn来po代码慎立flag。代码如下。

#include<iostream>#include<string>using namespace std;void Getsequence(int s[],string str)//获取keyword的字母关联顺序 {int l=str.length();char temp=']';for(int i=0;i<l;i++){for(int j=0;j<l;j++)    {    if(str[j]<temp&&str[j]!='a')    {    s[i]=j;    temp=str[j];    }    }    temp=']';    str[s[i]]='a';}}void recovery(string str1,string str2){int order[100];Getsequence(order,str1);int column_number=str1.length();int raw_number=str2.length()/column_number;char output[11][11];for(int i=0;i<column_number;i++){for(int j=0;j<raw_number;j++){output[j][order[i]]=str2[i*raw_number+j];//将密文转换成第一步加密后的二维char数组 }}for(int i=0;i<raw_number;i++)//顺序输出数组 {for(int j=0;j<column_number;j++){cout<<output[i][j];}}cout<<endl;}int main(){string keyword;while(cin>>keyword&&keyword!="THEEND"){string str;cin>>str;recovery(keyword,str);}}


0 0
原创粉丝点击