Cod sursa(job #1837135)

Utilizator vancea.catalincatalin vancea.catalin Data 29 decembrie 2016 01:07:45
Problema Abc2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<unordered_map>
#include<iostream>
#include<fstream>
#include<string>
#define M1 24
#define B1 17
using namespace std;
fstream fin("abc2.in",ios::in),fout("abc2.out",ios::out);
int ind=1,k1,ls,ls1;
unordered_map<int,int> mp;
string s,s1;
int main()
{
    int i,j,c,p=1,r=0;
    fin>>s;ls=s.size();
    while(fin>>s1)
    {
        ls1=s1.size();
        k1=0;
        for(j=0;j<s1.size();j++)
        {
            c=(s1[j]-'a'+1);
            k1=(k1*4+c);
        }
        //cout<<k1<<"\n";
        mp[k1]++;
    }
    k1=ind=0;
    if(ls1<=ls)
    {
        for(i=0;i<ls1;i++)
        {
            if(i>0) p=p*4;
            c=(s[i]-'a')+1;
            k1=k1*4+c;
        }
        if(mp[k1]!=0) r++;
        //cout<<k1<<" "<<mp[k1]<<"\n";
        for(i=ls1;i<ls;i++)
        {
            c=(s[i]-'a'+1);
            k1=k1%p;
            k1=k1*4+c;
            //cout<<k1<<" "<<mp[k1]<<"\n";
            if(mp[k1]!=0) r++;
        }
    }
    fout<<r;

}