比赛 |
20160414 |
评测结果 |
AAEEEEEEEE |
题目名称 |
随机数消除器 |
最终得分 |
20 |
用户昵称 |
KZNS |
运行时间 |
0.680 s |
代码语言 |
C++ |
内存使用 |
39.94 MiB |
提交时间 |
2016-04-14 17:16:32 |
显示代码纯文本
//KZNS
#include <fstream>
#include <cstring>
using namespace std;
//
ifstream fin ("randomb.in");
ofstream fout ("randomb.out");
//
char S[8000004];
int len;
int ed = 0;
bool exj[16777216] = {0};
bool exo[16777216] = {0};
//
int main() {
fin >> S;
len = strlen(S);
int j, k, t;
exj[1] = true;
exo[1] = true;
for (int i = 0; i < len; i++) {
j = i;
k = i;
t = 1;
while (true) {
if (!exj[t]) {
exj[t] = true;
ed++;
}
if (j < 0 || k >= len)
break;
if (S[j] == S[k]) {
if (S[j] == 'a') {
j--;
k++;
t<<=1;
}
else {
j--;
k++;
t = t<<1^1;
}
}
else {
break;
}
}
}
for (int i = 1; i < len; i++) {
j = i-1;
k = i;
t = 1;
while (true) {
if (!exo[t]) {
exo[t] = true;
ed++;
}
if (j < 0 || k >= len)
break;
if (S[j] == S[k]) {
if (S[j] == 'a') {
j--;
k++;
t<<=1;
}
else {
j--;
k++;
t = t<<1^1;
}
}
else {
break;
}
}
}
fout << ed;
return 0;
}
//UBWH