Cod sursa(job #2296764)

Utilizator pasoi_stefanPasoi Stefan pasoi_stefan Data 5 decembrie 2018 00:12:15
Problema Abc2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<fstream>
#include<string>
#include<map>
using namespace std;
ifstream cin("abc2.in");
ofstream cout("abc2.out");
string a,b;
map<long long,int> M;
int n,m,k;
long long ans,code,p;
int main(){
    cin>>a;
    while(cin>>b){
        code=0;
        for(int i=0;i<b.size();i++)
            code=code*3+(b[i]-'a');
        M[code]=1;
    }

    k=b.size(); p=1;
    for(int i=1;i<k;i++)
        p*=3;
    for(int i=0;i<k;i++)
        code=code*3+(a[i]-'a');
    ans+=M[code];

    for(int i=k;i<a.size();i++){
        code=(code-(a[i-k]-'a')*p)*3+(a[i]-'a');
        ans+=M[code];
    }
    cout<<ans;
}