Cod sursa(job #2831901)

Utilizator GligarEsterabadeyan Hadi Gligar Data 12 ianuarie 2022 13:53:56
Problema Abc2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>
#include <string>
#include <unordered_map>

using namespace std;

ifstream fin("abc2.in");
ofstream fout("abc2.out");

const int sigma=3;

typedef unsigned int uint;

unordered_map <uint, int> um;

int main(){
    string s1,s2;
    fin>>s1>>s2;
    int n=s2.size();
    uint nr=0;
    uint p=1;
    for(int i=1;i<n;i++){
        p*=sigma;
    }
    for(int i=0;i<int(s1.size());i++){
        if(i>=n){
            nr=nr-(s1[i-n]-'a')*p;
        }
        nr=nr*sigma+s1[i]-'a';
        if(i>=n-1){
            um[nr]++;
        }
    }
    int sol=0;
    nr=0;
    for(int i=0;i<n;i++){
        nr=nr*sigma+s2[i]-'a';
    }
    sol+=um[nr];///?
    um[nr]--;
    while(fin>>s2){
        nr=0;
        for(int i=0;i<n;i++){
            nr=nr*sigma+s2[i]-'a';
        }
        sol+=um[nr];///?
        um[nr]=0;
    }
    fout<<sol<<"\n";
}

/*
bbca
bcab
cabb
abba
bbab
babc
abcb
bcba
*/