#include <iostream>
#include <string>
using namespace std;
bool check(const string &s1, const string &s2, int &minToDelete)
{
minToDelete = 0;
bool anySubSeqFound = false;
if (s2.empty())
return false;
string::size_type first = 0;
while ((first = s1.find(s2[0], first)) != string::npos)
{
int numDeleted = 0;
bool isSubSeq = true;
string::size_type next = first + 1;
for(string::size_type j = 1; j < s2.size(); ++j)
{
string::size_type found = s1.find(s2[j], next);
if (found == string::npos)
{
isSubSeq = false;
break;
}
numDeleted += (found - next);
next = found + 1;
}
if (isSubSeq)
{
if (anySubSeqFound)
{
if (numDeleted < minToDelete)
minToDelete = numDeleted;
}
else
{
anySubSeqFound = true;
minToDelete = numDeleted;
}
}
++first;
}
return anySubSeqFound;
}
int main()
{
int minToDelete;
if (check("thistext", "text", minToDelete))
cout << "yes, delete " << minToDelete << endl;
else
cout << "no" << endl;
if (check("cutefriendship", "crisp", minToDelete))
cout << "yes, delete " << minToDelete << endl;
else
cout << "no" << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBjaGVjayhjb25zdCBzdHJpbmcgJnMxLCBjb25zdCBzdHJpbmcgJnMyLCBpbnQgJm1pblRvRGVsZXRlKQp7CgltaW5Ub0RlbGV0ZSA9IDA7Cglib29sIGFueVN1YlNlcUZvdW5kID0gZmFsc2U7CgkKICAgIGlmIChzMi5lbXB0eSgpKQogICAgCXJldHVybiBmYWxzZTsKCiAgICBzdHJpbmc6OnNpemVfdHlwZSBmaXJzdCA9IDA7CiAgICB3aGlsZSAoKGZpcnN0ID0gczEuZmluZChzMlswXSwgZmlyc3QpKSAhPSBzdHJpbmc6Om5wb3MpCiAgICB7CiAgICAgICAgaW50IG51bURlbGV0ZWQgPSAwOwogICAgICAgIGJvb2wgaXNTdWJTZXEgPSB0cnVlOwoKICAgICAgICBzdHJpbmc6OnNpemVfdHlwZSBuZXh0ID0gZmlyc3QgKyAxOwogICAgICAgIGZvcihzdHJpbmc6OnNpemVfdHlwZSBqID0gMTsgaiA8IHMyLnNpemUoKTsgKytqKQogICAgICAgIHsKICAgICAgICAgICAgc3RyaW5nOjpzaXplX3R5cGUgZm91bmQgPSBzMS5maW5kKHMyW2pdLCBuZXh0KTsKICAgICAgICAgICAgaWYgKGZvdW5kID09IHN0cmluZzo6bnBvcykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaXNTdWJTZXEgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG51bURlbGV0ZWQgKz0gKGZvdW5kIC0gbmV4dCk7CiAgICAgICAgICAgIG5leHQgPSBmb3VuZCArIDE7CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNTdWJTZXEpCgkJewoJCQlpZiAoYW55U3ViU2VxRm91bmQpCgkJCXsKCQkJCWlmIChudW1EZWxldGVkIDwgbWluVG9EZWxldGUpCgkJCQkJbWluVG9EZWxldGUgPSBudW1EZWxldGVkOwoJCQl9CgkJCWVsc2UKCQkJewkJCQoJCQkJYW55U3ViU2VxRm91bmQgPSB0cnVlOwoJCQkJbWluVG9EZWxldGUgPSBudW1EZWxldGVkOwoJCQl9CgkJfQoKICAgICAgICArK2ZpcnN0OwogICAgfQoKCXJldHVybiBhbnlTdWJTZXFGb3VuZDsKfQoKaW50IG1haW4oKQp7CiAgICBpbnQgbWluVG9EZWxldGU7CgogICAgaWYgKGNoZWNrKCJ0aGlzdGV4dCIsICJ0ZXh0IiwgbWluVG9EZWxldGUpKQogICAgICAgIGNvdXQgPDwgInllcywgZGVsZXRlICIgPDwgbWluVG9EZWxldGUgPDwgZW5kbDsKICAgIGVsc2UKICAgICAgICBjb3V0IDw8ICJubyIgPDwgZW5kbDsKCiAgICBpZiAoY2hlY2soImN1dGVmcmllbmRzaGlwIiwgImNyaXNwIiwgbWluVG9EZWxldGUpKQogICAgICAgIGNvdXQgPDwgInllcywgZGVsZXRlICIgPDwgbWluVG9EZWxldGUgPDwgZW5kbDsKICAgIGVsc2UKICAgICAgICBjb3V0IDw8ICJubyIgPDwgZW5kbDsKfQ==