#include <bits/stdc++.h>
using namespace std;
char str[10000];//记录密文
char ans[1000];//记录明文
int key, line, len, sit, ssit; //用于判断当前字符的位置为奇数还是偶数
int check() {
if (line == 1 || line == key) {//第一行和最后一行
return sit + (key - 1) * 2;
} else {
if (ssit % 2 == 1) {//奇数位置
return sit + (key - line) * 2;
} else {
return sit + 2 * (line - 1);//偶数位置
}
}
}
int main() {
int i;
cin >> key;
cin >> str;
len = strlen(str);
for (i = len; i > 0; i--)str[i] = str[i - 1];
//为了直观一些,统一前挪一位,方便操作
line = 1;
sit = 1;
ssit = 1;
for (i = 1; i <= len; i++) { //将密码对应在明文上
ans[sit] = str[i];
sit = check();
ssit++;
if (sit > len) { //超出范围,往回构造
line++;//到下一行了
sit = line; //每一行第一个字符的位置恰好与行数的数字一样
ssit = 1;
}
}
for (i = 1; i <= len; i++)printf("%c", ans[i]);
return 0;
}
样例已过