Cod sursa(job #2288493)

Utilizator flibiaVisanu Cristian flibia Data 23 noiembrie 2018 15:47:50
Problema Abc2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>
#pragma GCC optimize("03")

using namespace std;

ifstream in("abc2.in");
ofstream out("abc2.out");

string s, g;
map <pair <int, int>, bool> mp;

int main() {
	in >> s;
	while (in >> g) {
		int mask1 = 0, mask2 = 0;
		int sz = g.size();
		for (int i = 0; i < sz; i++) {
			if (g[i] == 'b')
				mask1 |= (1 << i);
			if (g[i] == 'c')
				mask2 |= (1 << i);
		}
		mp[{mask1, mask2}] = 1;
	}
	int sz = s.size(), rs = 0;
	for (int i = 0; i < sz; i++) {
		int mask1 = 0, mask2 = 0;
		for (int j = i; j < min(sz, i + 20); j++) {
			if (s[j] == 'b')
				mask1 |= (1 << (j - i));
			if (s[j] == 'c')	
				mask2 |= (1 << (j - 1));
			if (mp.count({mask1, mask2})) {
				rs++;
				break;
			}
		}
	}
	out << rs;
	return 0;
}