浙大PAT乙级1040 C语言 测试点3、4过不了

实在不知道怎么改了,请问如何修改才能让测试点3、4通过或者测试点3、4是什么


#include<stdio.h>
int main(){
    int i;
    const int mod = 1000000007;
    int num = 0;
    int k = 0;//记录实际的字符串的长度
    char a;
    char str[100000];
    for (i=0;i<100000;i++)
    {
        scanf("%c",&a);
        if (a == '\n')
            break;
        str[i] = a;
        k++;
    }
    int num_P[k],num_T;
    num_P[0] = 0;
    num_T = 0;
    for (i=0;i<k;i++)
    {
        if (i!=0)
            num_P[i] = num_P[i-1];
        if (str[i]=='P')
            num_P[i]++;
    }
    for (i=k-1;i>=0;i--)
    {
        if (str[i]=='T')
            num_T++;
        if (str[i]=='A')
            num += (num_P[i]*num_T)%mod;
    }
    printf("%d",num);
    return 0;
}