//
// main.cpp
// PATA1093
//
// Created by Phoenix on 2018/2/21.
// Copyright © 2018年 Phoenix. All rights reserved.
//
#include <iostream>
#include <cstdio>
#include <cstring>
const int maxn = 100010;
int pre[maxn] = {0};
int post[maxn] = {0};
int main(int argc, const char * argv[]) {
int len;
char s[maxn];
gets(s);
len = strlen(s);
if(s[0] == 'P') pre[0] = 1;
if(s[len - 1] == 'T') post[len - 1] = 1;
for(int i = 1; i < len; i++) {
if(s[i] == 'P') pre[i] = pre[i - 1] + 1;
else pre[i] = pre[i - 1];
if(s[len - i - 1] == 'T') post[len - i - 1] = post[len - i] + 1;
else post[len - i - 1] = post[len - i];
}
int ans = 0;
for(int i = 1; i < len - 1; i++) {
if(s[i] == 'A'){
ans += pre[i] * post[i];
ans %= 1000000007;
}
}
printf("%d\n", ans);
return 0;
}
PATA1093题解
最新推荐文章于 2021-08-12 21:10:36 发布