Pagini recente » Cod sursa (job #2577965) | Cod sursa (job #1595152) | Cod sursa (job #586799) | Cod sursa (job #2940857) | Cod sursa (job #1660676)
#include<fstream>
#include<string>
#include<map>
#include<string.h>
using namespace std;
ifstream in("abc2.in");
ofstream out("abc2.out");
char S[10000010];
int size1 = 0;
struct comparator
{
bool operator () (const char *const s1, const char *const s2)
{
if (!size1)
{
if (strcmp(s1, s2) < 0)
return 1;
else
return 0;
}
else
{
if (strncmp(s1, s2,size1) < 0)
return true;
else
return false;
}
}
};
map<const char*,int,comparator> m;
string str[50010];
int main()
{
in >> S;
int it = 0;
in >> str[++it];
m.insert(make_pair(str[it].c_str(), 1));
size1 = str[it].length();
while (in >> str[++it])
m.insert(make_pair(str[it].c_str(), 1));
int k = 0,nr=0;
while (S[k + size1 - 1] != '\0')
{
if (m[(const char*)(S + k)] == 1)
++nr;
++k;
}
out << nr;
return 0;
}