题目大致:
僵尸就要来进攻你的房子了,
戴夫给你写了一封密信,
但为了怕僵尸发现,
他决定给信加密,
并提前告诉你加密的的方法,
加密的方法是在信里加入一些没有意义的字符或单词,
然后加入两个修正符号“#”和“@”。
修正的规则入下:
1,当你发现一个退格符"#",则表示前一个字符无效;
2,如果发现一个退行符"@",以表示该行中 “@”前的所有字符均无效。 如果已经在行首则'#'符号无效。
现在请你翻译处加密前的信。
蒟蒻代码:
#include <bits/stdc++.h>
using namespace std;
string x[11000];
int main() {
int n;
cin >> n;
for(int i = 1; i <= n; i++) {
getline(cin, x[i]);
}
for(int i = 1; i <= n; i++) {
for(int j = 0; j < (int)(x[i].size()); j++) {
int pos = j;
if(x[i][j] == '@') {
if(j == 0) {
for(pos = j; pos < (int)(x[i]).size(); pos++) {
if(x[i][pos] == '#') x[i][pos] = 'F';
}
x[i][0] = 'F';
} else {
while(pos >= 0) {
x[i][pos] = 'F';
pos--;
}
}
}
if(x[i][j] == '#') {
pos = j - 1;
x[i][j] = 'F';
while(x[i][pos] == 'F' && pos) pos--;
x[i][pos] = 'F';
continue;
}
}
}
for(int i = 1; i <= n; i++) {
for(int j = 0; j < (int)x[i].size(); j++) {
if(x[i][j] == 'F') {
continue;
}
cout << x[i][j];
}
cout << endl;
}
return 0;
}