fork download
  1. program ideone;
  2.  
  3. var slogan, inp : string;
  4. count, position, len : integer;
  5.  
  6. function isEqual( {inp,} position, {slogan,} len :integer ):boolean;
  7. begin
  8. {writeln('Comparing inp[',position,']=',copy(inp,position,len),
  9. ' and slogan[',len,']=',copy(slogan,length(slogan)-len+1,length(slogan)) );}
  10. while (len>0) and (inp[position+len-1] = slogan[len]) do begin
  11. {writeln(' ',inp[position+len-1],'=',slogan[len] );}
  12. dec(len);
  13. end;
  14. isEqual := (len=0);
  15. end;
  16.  
  17. begin
  18. {ввести змінні}
  19. readln(slogan);
  20. readln(inp);
  21. count := 0;
  22. position := 1;
  23. {поки не скінчився вхідний рядок, шукати в ньому максимальний шмат слогана}
  24. while position < length(inp) do begin
  25. len := length(slogan);
  26. {гарантовано, що знайдеться}
  27. while not isEqual( {inp,} position, {slogan,} len ) do
  28. dec(len);
  29. inc(count);
  30. inc(position, len);
  31. end;
  32.  
  33. {вивести результат}
  34. writeln(count);
  35.  
  36. end.
Success #stdin #stdout 0s 232KB
stdin
aba
abaabaaba
stdout
3