PAT(Advanec Level) 1093. Count PAT's (25)

注意g++不支持int64_t最后改成了unsigned long long
基本思路:如果是P,不变
如果是A,它前面的所有的P都+1
如果是T,它前面的P都+A

#include 
#include 
#define DIV 1000000007
using namespace std;


int main(){
    vector<int> p;
    unsigned long long numofpat = 0,pre = 0;
    char c='\0';
    while((c = getchar())!='\n'&&c!='\0'){
        if(c == 'P')
            p.push_back(0);
        else if(c == 'A')
            pre += p.size();
        else if(c == 'T')
            numofpat += pre;
    }
    numofpat = numofpat % DIV;
    printf("%lld\n",numofpat);
}

你可能感兴趣的:(Pat,pat)