比赛 NOIP 2012 Day1 评测结果 C
题目名称 Vigenère密码 最终得分 0
用户昵称 cqw 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-11-21 21:04:24
显示代码纯文本
#include <iostream>
using namespace std;

const int maxn = 10001;
char a[maxn],b[maxn],ans[maxn];

void init() {
  scanf(" %s\n",a);
  scanf(" %s\n",b);
}

void solve() {
  for (int i=0;a[i];i++)
    if (a[i]>='a' && a[i]<='z') a[i]=a[i]-'a'+'A';
  int j=0;
  for (int i=0;b[i];i++,j++) {
    if (!a[j]) j=0;
    ans[i]=b[i]-(a[j]-'A');
    if (b[i]>='a' && b[i]<='z' && ans[i]<'a') ans[i]+=26;
    if (b[i]>='A' && b[i]<='Z' && ans[i]<'A') ans[i]+=26;
  }
}

int main() {
  freopen("vigenere.in","r",stdin);
  freopen("vigenere.out","w",stdout);
  init();
  solve();
  printf("%s\n",ans);
  return 0;
}