比赛 |
NOIP2015普及组练习 |
评测结果 |
AAAAAAAAAA |
题目名称 |
Vigenère密码 |
最终得分 |
100 |
用户昵称 |
AAAAAAAAAA |
运行时间 |
0.021 s |
代码语言 |
C++ |
内存使用 |
0.28 MiB |
提交时间 |
2015-11-02 19:10:21 |
显示代码纯文本
#include<fstream>
#include<string>
using namespace std;
int main(){
ifstream fin("vigenere.in");
ofstream fout("vigenere.out");
string a,b;
int i,x,y,p;
fin>>a>>b;
x=a.length();
y=b.length();
while(x<y){
a=a+a;
x=x*2;
}
p=a.length();
for(i=0;i<p;i++){
if(a[i]>='A'&&a[i]<='Z'){
a[i]=char(a[i]+32);}}
for(i=0;i<y;i++){
if(b[i]>='a'&&b[i]<='z'){
if(b[i]-(a[i]-'a')>='a'){
fout<<char(b[i]-(a[i]-'a'));}
if(b[i]-(a[i]-'a')<'a'){
fout<<char(b[i]+26-(a[i]-'a'));}}
if(b[i]>='A'&&b[i]<='Z'){
if(b[i]-(a[i]-'a')>='A'){
fout<<char(b[i]-(a[i]-'a'));}
if(b[i]-(a[i]-'a')<'A'){
fout<<char(b[i]+26-(a[i]-'a'));}}}
fin.close();
fout.close();
return 0;
}