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