Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Hash get_Hash_without(int l, int r, vector<Hash>& w)
- {
- if (l == 0)
- {
- Hash x = get_Hash(r + 1, w.size() - 1, w);
- return x;
- }
- if (r == 0)
- return w[l - 1];
- return w[l - 1] * p[((w.size() - 1) - r)] + get_Hash(r + 1, w.size() - 1, w);
- }
- int idx_rev(int x, int n)
- {
- return n - x - 1;
- }
- string get_except(int l, int r, string& s)
- {
- string ans = s.substr(0, l) + s.substr(r + 1, kol(r + 1, s.size() - 1));
- return ans;
- }
- string stupid(string& s)
- {
- vector<Hash> h_str_s = V_Hash(s);
- reverse(all(s));
- vector<Hash> h_rev_s = V_Hash(s);
- reverse(all(s));
- if (get_Hash(0, s.size() - 1, h_str_s) == get_Hash(0, s.size() - 1, h_rev_s))
- {
- return s;
- }
- string ans;
- bool found = false;
- for (int len = 1; len <= s.size(); ++len)
- {
- for (int i = 0; i <= s.size() - len; ++i)
- {
- if (get_Hash_without(i, i + len - 1, h_str_s) == get_Hash_without( idx_rev(i + len - 1, s.size()), idx_rev(i, s.size()), h_rev_s))
- {
- found = true;
- ans = get_except(i, i + len - 1, s);
- break;
- }
- }
- if (found)
- break;
- }
- return ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment