Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- typedef long long int ll;
- ll const prime = 98765431;
- int main()
- {
- int n,m;
- scanf("%d %d",&n,&m);
- char str[n+1];
- scanf("%s",str);
- char word[m+1];
- scanf("%s",word);
- ll mb = 1;
- ll hw = 0;
- for(int i = 0 ; i < m ; i ++){
- if(i != 0)mb *= prime;
- hw *= prime;
- hw += word[i];
- }
- ll hs = 0;
- int cnt = 0;
- for(int i = 0 ; i < n ; i ++){
- hs *= prime;
- hs += str[i];
- if(i >= m - 1){
- // printf("I %d : Test %lld == %lld ? \n",i,hs,hw);
- if(hs == hw){
- cnt ++;
- }
- hs -= str[i-m+1]*mb;
- }
- }
- printf("%d",cnt);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement