[ CodeVS冲杯之路 ] P1197

时间:2023-03-09 05:20:26
[ CodeVS冲杯之路 ] P1197

  不充钱,你怎么AC?

  题目:http://codevs.cn/problem/1197/

  密钥的字母可以全转换为小写字母,然后一一映射,a→0,b→1,c→2,依此类推

  对于密文只需将每一位减去对应密钥的映射,如果小于 a 或 A 则再将它加上 26 即可

 #include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std; int a[];
int main()
{
int m=-,i=;
bool f;
char ch=getchar();
while (ch!='\n')
{
if (ch<'a') ch+=;
a[++m]=ch-'a';
ch=getchar();
}
ch=getchar();
while (ch!='\n')
{
f=ch>'Z';
ch-=a[i++];
if (i>m) i=;
if ((f&&ch<'a')||((!f)&&ch<'A')) ch+=;
putchar(ch);
ch=getchar();
}
return ;
}