Cod sursa(job #3217947)

Utilizator Cazacu2006RazvanRazvan Cazacu Cazacu2006Razvan Data 25 martie 2024 11:43:28
Problema Abc2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin("abc2.in");
ofstream fout("abc2.out");
char x[10000005],y[21];
unordered_map <long long,int> mp;
int rasp,l;
int main()
{
    fin>>x;
   while(fin>>y)
   {
       long long nr=0;
       l=0;
       for(int j=0;y[j]!=0;j++)
       {
           l++;
            nr=nr*3+(y[j]-'a');
       }

       mp[nr]=1;

   }
   long long p=1;
   for(int j=2;j<=l;j++)
    p=p*3;

long long nr=0;
   for(int i=0;x[i]!=0;i++)
   {
       if(i+1<l)
       {
           nr=nr*3+x[i]-'a';
       }
       else if(i+1==l)
       {
           nr=nr*3+x[i]-'a';
           if(mp.find(nr)!=mp.end())
           {

               rasp++;
           }
       }
       else
       {
           nr=nr-(x[i-l]-'a')*p;
           nr=nr*3+x[i]-'a';
           if(mp.find(nr)!=mp.end())
           {

               rasp++;
           }

       }


   }
   fout<<rasp;


    return 0;
}