#include <iostream>
#include <string>
using namespace std;
int main() {
string s1, s2;
do {
cout << "String : ";
getline(cin, s1);
}
while (s1.empty());
do {
cout << "Substring : ";
getline(cin, s2);
}
while (s2.empty());
string::size_type s1_size = s1.size(),
s2_size = s2.size(),
m = 0,
n = 0,
k;
int count = 0;
while (n < s1_size) {
if (s1[n] == s2[m]) {
k = n;
do {
++n;
++m;
}
while (n < s1_size && m < s2_size && s1[n] == s2[m]);
if (m == s2_size) {
++count;
}
else {
n = k + 1;
}
m = 0;
}
else {
++n;
}
}
if (count == 0) {
cout << "String contains no substring!";
}
else {
cout << "String contains substring " << count << " time(s)!";
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBzdHJpbmcgczEsIHMyOwoKICAgIGRvIHsKICAgICAgICBjb3V0IDw8ICJTdHJpbmcgOiAiOwogICAgICAgIGdldGxpbmUoY2luLCBzMSk7CiAgICB9CiAgICB3aGlsZSAoczEuZW1wdHkoKSk7CgogICAgZG8gewogICAgICAgIGNvdXQgPDwgIlN1YnN0cmluZyA6ICI7CiAgICAgICAgZ2V0bGluZShjaW4sIHMyKTsKICAgIH0KICAgIHdoaWxlIChzMi5lbXB0eSgpKTsKCiAgICBzdHJpbmc6OnNpemVfdHlwZSBzMV9zaXplID0gczEuc2l6ZSgpLAogICAgICAgICAgICAgICAgICAgICAgczJfc2l6ZSA9IHMyLnNpemUoKSwKICAgICAgICAgICAgICAgICAgICAgIG0gPSAwLAogICAgICAgICAgICAgICAgICAgICAgbiA9IDAsCiAgICAgICAgICAgICAgICAgICAgICBrOwogICAgaW50IGNvdW50ID0gMDsKCiAgICB3aGlsZSAobiA8IHMxX3NpemUpIHsKICAgICAgICBpZiAoczFbbl0gPT0gczJbbV0pIHsKICAgICAgICAgICAgayA9IG47CiAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICAgICsrbjsKICAgICAgICAgICAgICAgICsrbTsKICAgICAgICAgICAgfQogICAgICAgICAgICB3aGlsZSAobiA8IHMxX3NpemUgJiYgbSA8IHMyX3NpemUgJiYgczFbbl0gPT0gczJbbV0pOwogICAgICAgICAgICBpZiAobSA9PSBzMl9zaXplKSB7CiAgICAgICAgICAgICAgICArK2NvdW50OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgbiA9IGsgKyAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG0gPSAwOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgKytuOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoY291bnQgPT0gMCkgewogICAgICAgIGNvdXQgPDwgIlN0cmluZyBjb250YWlucyBubyBzdWJzdHJpbmchIjsKICAgIH0KICAgIGVsc2UgewogICAgICAgIGNvdXQgPDwgIlN0cmluZyBjb250YWlucyBzdWJzdHJpbmcgIiA8PCBjb3VudCA8PCAiIHRpbWUocykhIjsKICAgIH0KfQo=