1040 有几个PAT

阅读 56

2022-01-27

#include <iostream>
#include <string.h>
using namespace std;
int main()
{
    char str[100010];
    cin>>str;
    int countp=0,countt=0;
    int length=strlen(str);
    int flag[length][2];
    int count=0;
    int p=0,t=length-1;
    while(true)
    {
      if(str[p]!='P') p++;
      else break;
    }
    while(true)
    {
      if(str[t]!='T') t--;
      else break;
    }
    for(int i=t;i>=p;i--)
    {
        if(str[i]=='T')
        {
            countt++;
        }
        flag[i][1]=countt;
    }
    for(int i=p;i<=t;i++)
    {
        if(str[i]=='P')
        {
            countp++;
        }
        flag[i][0]=countp;
    }
    for(int i=p;i<=t;i++)
    {
        if(str[i]=='A')
        {
            count+=flag[i][0]*flag[i][1];
            count%=1000000007;         
        }
    }
    cout<<count;
    return 0;
}

精彩评论(0)

0 0 举报