diff options
Diffstat (limited to 'contests/Round#853/B/main.cpp')
| -rwxr-xr-x | contests/Round#853/B/main.cpp | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/contests/Round#853/B/main.cpp b/contests/Round#853/B/main.cpp deleted file mode 100755 index 12517e2..0000000 --- a/contests/Round#853/B/main.cpp +++ /dev/null @@ -1,107 +0,0 @@ -#include <bits/stdc++.h> -using namespace std; - -using ll = long long; -using pi = pair<int, int>; -using vpi = vector<pi>; -using vi = vector<int>; -using vll = vector<long long>; -using mpii = map<int, int>; -using mpll = map<ll, ll>; -using db = long double; - -#define pb push_back -#define all(x) (x).begin(), (x).end() -#define rall(x) (x).rbegin(), (x).rend() -#define lb lower_bound -#define ub upper_bound - -const int MOD = (int)1e9 + 7; -const db PI = acos((db)-1); -const int dx[4]{1, 0, -1, 0}; -const int dy[4]{0, 1, 0, -1}; - -// pretty printing -template <typename K, typename V> void printm(const map<K, V> &mp) { - cerr << "{" << endl; - for (auto p : mp) { - cerr << " { " << p.first << " : " << p.second << " }\n"; - } - cerr << "}" << endl; -} -template <typename T> void printv(const vector<T> &v) { - cerr << "["; - for (int i = 0; i < v.size(); i++) { - if (i == v.size() - 1) { - cerr << v[i]; - } else { - cerr << v[i] << ", "; - } - } - cerr << "]\n"; -} - -template <typename T> void printvv(const vector<vector<T>> &v) { - cerr << "[\n"; - for (auto &vec : v) { - cout << " "; - printv(vec); - } - cerr << "]\n"; -} -void print() { cerr << "\n"; } - -template <typename T, typename... TS> void print(T val, TS... vals) { - cerr << val << " "; - print(vals...); -} - -/* stuff you should look for: - --------------------------- - * special cases (n=1?) - * int overflow, array bounds - * do smth instead of nothing and stay organized - * WRITE STUFF DOWN - * DON'T GET STUCK ON ONE APPROACH - */ - -bool isPalindrome(string &s) { return string(all(s)) == string(rall(s)); } - -void solve() { - int n; - cin >> n; - string s; - cin >> s; - vector<bool> pal(n); - if (n & 1) - pal[n / 2] = 1; - for (int i = 0; i < n / 2; i++) { - pal[i] = pal[n - i - 1] = s[i] == s[n - i - 1]; - } - pal.erase(unique(all(pal)), pal.end()); - n = pal.size(); - if (count(all(pal), 0) <= 2) { - cout << "Yes" << '\n'; - } else { - cout << "No" << '\n'; - } - // string haystack = ""; - // for (int i = 0; i < n / 2; i++) { - // haystack += (pal[i] ? "R" : "W"); - // } - // if (regex_match(haystack, regex("WR+W"))) { - // cout << "No" << '\n'; - // } else { - // cout << "Yes" << '\n'; - // } -} - -int main() { - ios_base::sync_with_stdio(false); - cin.tie(NULL); - int tt; - cin >> tt; - while (tt--) { - solve(); - } -} |
