比赛 NOIP2015普及组练习 评测结果 AAAAAAAAAA
题目名称 Vigenère密码 最终得分 100
用户昵称 Shirry 运行时间 0.011 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2015-11-02 21:10:10
显示代码纯文本
#include<iostream>
#include<fstream>
using namespace std;
int main(){
	ifstream cin("vigenere.in");
	ofstream cout("vigenere.out");
    string s1,s2;
    bool b[1001];
    int i,j;
    getline(cin,s1);
    getline(cin,s2);           
    for(i=0;i<s1.size();i++){
		if(s1[i]>=65&&s1[i]<=90) s1[i]=s1[i]-65;
        if(s1[i]>=97&&s1[i]<=122) s1[i]=s1[i]-97;
	}
    for(i=0;i<s2.size();i++){
		if(s2[i]>=65&&s2[i]<=90){
			s2[i]=s2[i]-64;b[i]=1;
		}
        if(s2[i]>=97&&s2[i]<=122) 
			s2[i]=s2[i]-96;
	}
        for(i=0,j=0;i<s2.size();i++,j++){
			if(j==s1.size()) j=0;
            s2[i]=s2[i]-s1[j];
            if(s2[i]<=0) s2[i]+=26;
		}
    for(i=0;i<s2.size();i++)
      if(b[i]==1) cout<<char(s2[i]+64);
      else cout<<char(s2[i]+96);
        
    return 0;
}