Cod sursa(job #1487973)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 17 septembrie 2015 18:42:44
Problema Abc2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <fstream>
#include <map>
#include <cstring>
using namespace std;
ifstream f("abc2.in");
ofstream g("abc2.out");
map <unsigned int,unsigned int> M;
int nr,i,l,n;
long long z;
unsigned int a;
char w[10000012],c[24];
int main()
{
    f>>(w+1);
    l=strlen(w+1);
    while(f>>(c+1))
    {
        n=strlen(c+1);
        for(i=1,a=0;i<=n;++i) a=a*3+c[i]-'0';
        M[a]=1;
    }
    for(i=1,a=0,z=1;i<=n;++i) a=a*3+w[i]-'0',z*=3LL;
    z/=3LL;
    if(M.find(a)!=M.end()) ++nr;
    for(i=n+1;i<=l;++i) {a=a-(w[i-n]-'0')*z; a=a*3+w[i]-'0'; if(M.find(a)!=M.end()) ++nr;}
    g<<nr;
    return 0;
}