Cod sursa(job #1660676)

Utilizator ArkinyStoica Alex Arkiny Data 23 martie 2016 12:19:44
Problema Abc2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#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;
}