Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using namespace std;
- string kek;
- signed main() {
- cin >> kek;
- vector<int> let('z' - 'a' + 1, 0);
- for (int i = 0; i < kek.size(); i++) {
- let[kek[i] - 'a']++;
- }
- int cnt = 0;
- for (int i = 0; i < let.size(); i++) {
- if (let[i] % 2) cnt++;
- }
- if (cnt > 1) return cout << "Impossible", 0;
- bool f = true;
- for (int i = 1; i <= kek.size(); i++) {
- for (int j = 0; j < i; j++) {
- if (kek[j] != kek[kek.size() - i + j]) {
- f = false;
- break;
- }
- }
- if (!f) break;
- }
- if (f) return cout << "Impossible", 0;
- for (int i = 0; i < kek.size() - 1; i++) {
- bool f = true, b = true;
- int l = i + 1, r = i, plr = kek.size(), pll = 0;
- int li = 0, ri = kek.size() - 1;
- while (plr + r > l + pll) {
- if (kek[l] != kek[r]) {
- f = false;
- break;
- }
- if (kek[l] != kek[li] || kek[r] != kek[ri]) b = false;
- l++;
- if (l == kek.size()) {
- pll = kek.size();
- l = 0;
- }
- r--;
- if (r < 0) {
- r = kek.size() - 1;
- plr = 0;
- }
- li++;
- ri--;
- if (kek[l] != kek[li] || kek[r] != kek[ri]) b = false;
- }
- if (f && !b) {
- return cout << 1, 0;
- }
- }
- cout << 2;
- //system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement