Pagini recente » Cod sursa (job #713910) | Cod sursa (job #2288493)
#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;
}