PAT 1093. Count PAT's (25)

来源:互联网 发布:编程语言与脚本语言 编辑:程序博客网 时间:2024/05/28 11:49
#include<vector>#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<queue>#include<map>#include<string>#include<set>#include<stack>using namespace std;int main(){    char str[100001];    int countp[100001];    int countT[100001];      scanf("%s",str);      int t=strlen(str);    countp[0]=0;    for(int i=0;i<t;i++)        if(i==0&&str[i]=='P')            countp[i]=1;        else   if(i!=0)        {            if(str[i]=='P')            countp[i]=countp[i-1]+1;            else                countp[i]=countp[i-1];        }    countT[t-1]=0;   for(int i=t-1;i>=0;i--)    if(i==t-1&&str[i]=='T')    countT[i]=1;   else if(i!=t-1)   {       if(str[i]=='T')       countT[i]=countT[i+1]+1;       else        countT[i]=countT[i+1];   }   int ans=0;   for(int i=0;i<t;i++)    if(i!=0&&str[i]=='A')    {        ans+=countT[i+1]*countp[i-1];        ans%=1000000007;    }    printf("%d\n",ans);            return 0;}

0 0
原创粉丝点击