Cod sursa(job #2638063)

Utilizator etienAndrone Stefan etien Data 26 iulie 2020 17:35:13
Problema Invers modular Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
vector<int>poz;
const int MOD=666013;
int hsh(string s)
{
    int mod=0,val=1;
    for(auto c:s)
    {
        mod+=(val%MOD)*(c-'A');
        val*=26;
        val%=MOD;
        mod%=MOD;
    }
    return mod;
}
int eqhsh(string a,string b)
{
    if(hsh(a)==hsh(b))
        return a==b;
    return false;
}
int main()
{
    string a,b;
    fin>>a>>b;
    int nr=0;
    for(int i=0;i<=(int)b.size()-(int)a.size();i++)
    {
       string s=b.substr(i,a.size());
       if(eqhsh(a,s))
       {
           nr++;
           poz.push_back(i);
       }
    }
    fout<<nr<<"\n";
    for(auto p:poz)
        fout<<p<<" ";
}