Cod sursa(job #1309356)

Utilizator serban_ioan97Ciofu Serban serban_ioan97 Data 5 ianuarie 2015 18:13:50
Problema Abc2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <vector>
#include <map>
#include <string>
#define pb push_back

using namespace std;

map<int, int> kush;

ifstream f("abc2.in");
ofstream g("abc2.out");

string ss, s;
int qq, i, lenght;
int main()
{
    getline(f, s);
    while(getline(f, ss))
    {
        lenght=ss.size();
        int x=0;
        for(i=0; i<lenght; ++i)
        x=x*3+ss[i]-'a';

        if(kush.find(x)==kush.end()) kush[x]=++qq;
    }
    int len=lenght;
    lenght=s.size();
    int pow=1, x=0;

    for(i=0; i<len; ++i)
    {
        x=x*3+s[i]-'a';
        pow*=3;
    }

    int word_number=0;
    pow/=3;
    if(kush.find(x)!=kush.end()) word_number++;

    for(i=len; i<lenght; ++i)
    {
        x-=pow*(s[i-len]-'a');
        x=x*3+s[i]-'a';
        if(kush.find(x)!=kush.end()) word_number++;
    }

    g<<word_number;

    return 0;
}