记录编号 262116 评测结果 AAAAAAAAAA
题目名称 [NOIP 2012]Vigenère密码 最终得分 100
用户昵称 GravatarShirry 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2016-05-19 19:15:40 内存使用 0.31 MiB
显示代码纯文本
#include<iostream>
#include<cstring>
#include<fstream>
using namespace std;
int main(){
	freopen("vigenere.in","r",stdin);
    freopen("vigenere.out","w",stdout);
    char a[27][27]={0};
    char b[100]={0},c[1000]={0};
    char qq=0;
    int d=0,e=0,mi=0,f=0,g=0;
    for(int i=0;i<26;i++){
		for(int j=0;j<26;j++){
			a[i][j]=(i+j)%26;
        }
    }
    cin.getline(b,1000);
    cin.getline(c,1000);
    d=strlen(b);
    e=strlen(c);
    while(f<e){
		if((int)b[mi]>90)g=(int)b[mi]-97;
        if((int)b[mi]<=90)g=(int)b[mi]-65;
        if((int)c[f]<='Z'){
        for(int j=0;j<26;j++){
			if(a[g][j]==((int)c[f]-65)){
				qq=j+65;
                cout<<qq;
			}
        }
    }
    if((int)c[f]>'Z'){
		for(int j=0;j<26;j++){
            if(a[g][j]==((int)c[f]-97)){
                qq=j+97;
                cout<<qq;
            }
        }
    }
    mi++;f++;
    if(mi==d)mi=0;
    }
    return 0;
}