Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>using namespace std;char s[500000+5];int main() {scanf("%s", &s);int len = strlen(s);int ans = len+1;if (len & 1) {int pos = len-1, cnt = 0;for (int i = len/2-1, j = len/2; i >= 0 && cnt < 2; --i, ++j)if (s[i] != s[j]) pos = j, ++cnt, ++j;if (cnt <= 1) ans = min(ans, pos+1);pos = 0, cnt = 0;for (int i = len/2, j = len/2+1; i > 0 && cnt < 2; --i, ++j)if (s[i] != s[j]) pos = i, ++cnt, --i;if (cnt <= 1) ans = min(ans, pos+1);} else {int pos = len-1, cnt = 0;for (int i = len/2-2, j = len/2; i >= 0 && cnt < 2; --i, ++j)if (s[i] != s[j]) pos = j, ++cnt, ++j;if (cnt <= 1) ans = min(ans, pos+1);pos = 0, cnt = 0;for (int i = len/2-1, j = len/2+1; i > 0 && cnt < 2; --i, ++j)if (s[i] != s[j]) pos = i, ++cnt, --i;if (cnt <= 1) ans = min(ans, pos+1);}