PAT 1093. Count PAT's (25)

来源:互联网 发布:重庆鸿巨网络怎么样 编辑:程序博客网 时间:2024/05/28 20:19
#include<iostream>#include<cstring>#include<vector>using namespace std;char s[100005];class LR{public:int cnt_p;int cnt_t;};vector<class LR> list;int main(){cin.getline(s, 100005);int size = strlen(s);int p = 0, t = 0;for (int i = 0; i < size; i++){if (s[i] == 'P'){p++;}else if (s[i] == 'A'){LR tmp;tmp.cnt_p = p;tmp.cnt_t = 0;list.push_back(tmp);}}int index = list.size() - 1;for (int i = size - 1; i >= 0; i--){if (s[i] == 'T')t++;else if (s[i] == 'A')list[index--].cnt_t = t;}size = list.size();int sum = 0;for (int i = 0; i < size; i++){sum += list[i].cnt_p*list[i].cnt_t;sum %= 1000000007;}cout << sum;}
0 0