#include #include #include #include #include using namespace std; typedef long long ll; /* * Author * Robin Lee (hex539) * * Algorithm * Convert each 16-gram to a letter representation using a suffix array-like * algorithm. Run straightfoward brute-force comparison from there. * * Complexity * O(N^2) */ #define MAXN 200000 void normalise(basic_string &s){ static ll renum[MAXN]; for (int i=s.length(); i--;) renum[i]=s[i]; sort(renum,renum+s.size()); for (auto &i: s) i=lower_bound(renum,renum+s.size(),i)-renum; } basic_string &simplify(basic_string &s){ normalise(s); for (int radius=1; radius<=(1<<3); radius<<=1){ basic_string t=s; for (int i=0; i read_clock(int n){ int const modulo = 360000; vector v(n); for (int i=0; i>v[i]; sort(v.begin(),v.end()); v.push_back(v.front()); basic_string s; for (int i=0; i>n; basic_string a=read_clock(n), b=read_clock(n); cout<<(~(a+a).find(b)? "possible": "impossible")<