Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- #include <set>
- using namespace std;
- const int MAX_LEN = 10;
- int main() {
- set<string> primitives;
- string s, t;
- while (cin >> t && t != ".") primitives.insert(t);
- while (cin >> t) s += t;
- vector<bool> can(1+s.size());
- can[0] = true;
- int longest;
- for (int i = 0; i <= s.size(); ++i) {
- if (!can[i]) continue;
- longest = i;
- for (int j = 1; j <= MAX_LEN && i+j <= s.size(); ++j) {
- if (primitives.count(s.substr(i, j))) can[i+j] = true;
- }
- }
- cout << longest << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement