QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#273538#7882. Linguistics Puzzleucup-team088#AC ✓619ms12244kbC++1711.2kb2023-12-03 00:58:252023-12-03 00:58:26

Judging History

你现在查看的是最新测评结果

  • [2023-12-03 00:58:26]
  • 评测
  • 测评结果:AC
  • 用时:619ms
  • 内存:12244kb
  • [2023-12-03 00:58:25]
  • 提交

answer

#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#include<iostream>
#include<string>
#include<cstdio>
#include<vector>
#include<cmath>
#include<algorithm>
#include<functional>
#include<iomanip>
#include<queue>
#include<ciso646>
#include<random>
#include<map>
#include<set>
#include<bitset>
#include<stack>
#include<unordered_map>
#include<unordered_set>
#include<utility>
#include<cassert>
#include<complex>
#include<numeric>
#include<array>
#include<chrono>
using namespace std;

//#define int long long
typedef long long ll;

typedef unsigned long long ul;
typedef unsigned int ui;
//ll mod = 1;
constexpr ll mod = 998244353;
//constexpr ll mod = 1000000007;
const int mod17 = 1000000007;
const ll INF = (ll)mod17 * mod17;
typedef pair<int, int>P;

#define rep(i,n) for(int i=0;i<n;i++)
#define per(i,n) for(int i=n-1;i>=0;i--)
#define Rep(i,sta,n) for(int i=sta;i<n;i++)
#define rep1(i,n) for(int i=1;i<=n;i++)
#define per1(i,n) for(int i=n;i>=1;i--)
#define Rep1(i,sta,n) for(int i=sta;i<=n;i++)
#define all(v) (v).begin(),(v).end()
typedef pair<ll, ll> LP;

using ld = double;
typedef pair<ld, ld> LDP;
const ld eps = 1e-10;
const ld pi = acosl(-1.0);

template<typename T>
void chmin(T& a, T b) {
    a = min(a, b);
}
template<typename T>
void chmax(T& a, T b) {
    a = max(a, b);
}
template<typename T>
vector<T> vmerge(vector<T>& a, vector<T>& b) {
    vector<T> res;
    int ida = 0, idb = 0;
    while (ida < a.size() || idb < b.size()) {
        if (idb == b.size()) {
            res.push_back(a[ida]); ida++;
        }
        else if (ida == a.size()) {
            res.push_back(b[idb]); idb++;
        }
        else {
            if (a[ida] < b[idb]) {
                res.push_back(a[ida]); ida++;
            }
            else {
                res.push_back(b[idb]); idb++;
            }
        }
    }
    return res;
}
template<typename T>
void cinarray(vector<T>& v) {
    rep(i, v.size())cin >> v[i];
}
template<typename T>
void coutarray(vector<T>& v) {
    rep(i, v.size()) {
        if (i > 0)cout << " "; cout << v[i];
    }
    cout << "\n";
}
ll mod_pow(ll x, ll n, ll m = mod) {
    if (n < 0) {
        ll res = mod_pow(x, -n, m);
        return mod_pow(res, m - 2, m);
    }
    if (abs(x) >= m)x %= m;
    if (x < 0)x += m;
    //if (x == 0)return 0;
    ll res = 1;
    while (n) {
        if (n & 1)res = res * x % m;
        x = x * x % m; n >>= 1;
    }
    return res;
}
//mod should be <2^31
struct modint {
    int n;
    modint() :n(0) { ; }
    modint(ll m) {
        if (m < 0 || mod <= m) {
            m %= mod; if (m < 0)m += mod;
        }
        n = m;
    }
    operator int() { return n; }
};
bool operator==(modint a, modint b) { return a.n == b.n; }
bool operator<(modint a, modint b) { return a.n < b.n; }
modint operator+=(modint& a, modint b) { a.n += b.n; if (a.n >= mod)a.n -= (int)mod; return a; }
modint operator-=(modint& a, modint b) { a.n -= b.n; if (a.n < 0)a.n += (int)mod; return a; }
modint operator*=(modint& a, modint b) { a.n = ((ll)a.n * b.n) % mod; return a; }
modint operator+(modint a, modint b) { return a += b; }
modint operator-(modint a, modint b) { return a -= b; }
modint operator*(modint a, modint b) { return a *= b; }
modint operator^(modint a, ll n) {
    if (n == 0)return modint(1);
    modint res = (a * a) ^ (n / 2);
    if (n % 2)res = res * a;
    return res;
}

ll inv(ll a, ll p) {
    return (a == 1 ? 1 : (1 - p * inv(p % a, a)) / a + p);
}
modint operator/(modint a, modint b) { return a * modint(inv(b, mod)); }
modint operator/=(modint& a, modint b) { a = a / b; return a; }
const int max_n = 1 << 20;
modint fact[max_n], factinv[max_n];
void init_f() {
    fact[0] = modint(1);
    for (int i = 0; i < max_n - 1; i++) {
        fact[i + 1] = fact[i] * modint(i + 1);
    }
    factinv[max_n - 1] = modint(1) / fact[max_n - 1];
    for (int i = max_n - 2; i >= 0; i--) {
        factinv[i] = factinv[i + 1] * modint(i + 1);
    }
}
modint comb(int a, int b) {
    if (a < 0 || b < 0 || a < b)return 0;
    return fact[a] * factinv[b] * factinv[a - b];
}
modint combP(int a, int b) {
    if (a < 0 || b < 0 || a < b)return 0;
    return fact[a] * factinv[a - b];
}

ll gcd(ll a, ll b) {
    a = abs(a); b = abs(b);
    if (a < b)swap(a, b);
    while (b) {
        ll r = a % b; a = b; b = r;
    }
    return a;
}
template<typename T>
void addv(vector<T>& v, int loc, T val) {
    if (loc >= v.size())v.resize(loc + 1, 0);
    v[loc] += val;
}
/*const int mn = 2000005;
bool isp[mn];
vector<int> ps;
void init() {
    fill(isp + 2, isp + mn, true);
    for (int i = 2; i < mn; i++) {
        if (!isp[i])continue;
        ps.push_back(i);
        for (int j = 2 * i; j < mn; j += i) {
            isp[j] = false;
        }
    }
}*/

//[,val)
template<typename T>
auto prev_itr(set<T>& st, T val) {
    auto res = st.lower_bound(val);
    if (res == st.begin())return st.end();
    res--; return res;
}

//[val,)
template<typename T>
auto next_itr(set<T>& st, T val) {
    auto res = st.lower_bound(val);
    return res;
}
using mP = pair<modint, modint>;
mP operator+(mP a, mP b) {
    return { a.first + b.first,a.second + b.second };
}
mP operator+=(mP& a, mP b) {
    a = a + b; return a;
}
mP operator-(mP a, mP b) {
    return { a.first - b.first,a.second - b.second };
}
mP operator-=(mP& a, mP b) {
    a = a - b; return a;
}
LP operator+(LP a, LP b) {
    return { a.first + b.first,a.second + b.second };
}
LP operator+=(LP& a, LP b) {
    a = a + b; return a;
}
LP operator-(LP a, LP b) {
    return { a.first - b.first,a.second - b.second };
}
LP operator-=(LP& a, LP b) {
    a = a - b; return a;
}
P operator+(P a, P b) {
    return { a.first + b.first,a.second + b.second };
}

mt19937 mt(time(0));

const string drul = "DRUL";
string senw = "SENW";
//DRUL,or SENW
//int dx[4] = { 1,0,-1,0 };
//int dy[4] = { 0,1,0,-1 };

//------------------------------------

string ori;
int revori(char c) {
    if ('a' <= c && c <= 'z')return c - 'a';
    return c - 'A' + 26;
}
void init() {
    rep(i, 26)ori.push_back('a' + i);
    rep(i, 26)ori.push_back('A' + i);
}

struct Data {
    int c1 = 0;
    int c2 = 0;
    vector<int> vl, vr;
    vector<int> vcl, vcr;
};
bool operator==(Data& a, Data& b) {
    return a.c1 == b.c1 && a.c2 == b.c2 && a.vl == b.vl && a.vr == b.vr && a.vcl == b.vcl && a.vcr == b.vcr;
}
string sol(int n,vector<string> ss) {
    vector<vector<int>> val(n * n);
    rep(i, n)rep(j, n) {
        int le = i * j / n;
        int ri = i * j % n;
        if (le > 0)val[i * n + j].push_back(le);
        val[i * n + j].push_back(ri);
    }
    vector<int> ans(n,-1);
    vector<int> rev(n, -1);
    rep(_,n) {
        vector<Data> mem(n);
        rep(i, n) {
            Data& cur = mem[i];
            map<int, int> mpl, mpr;
            if (ans[i] < 0) {
                for (auto& s : val) {
                    if (s.size() == 1 && s[0] == i) {
                        cur.c1++;
                    }
                    if (s.size() == 2) {
                        if (s[0] == i && s[1] == i) {
                            cur.c2++;
                        }
                        else if (s[0] == i) {
                            int to = s[1];
                            if (ans[to] >= 0) {
                                cur.vl.push_back(to);
                            }
                            else {
                                mpl[to]++;
                            }
                        }
                        else if (s[1] == i) {
                            int to = s[0];
                            if (ans[to] >= 0) {
                                cur.vr.push_back(to);
                            }
                            else {
                                mpr[to]++;
                            }
                        }
                    }
                }
                for (auto p : mpl) {
                    cur.vcl.push_back(p.second);
                }
                for (auto p : mpr) {
                    cur.vcr.push_back(p.second);
                }
                sort(all(cur.vl));
                sort(all(cur.vr));
                sort(all(cur.vcl));
                sort(all(cur.vcr));
            }
        }
        rep(i, n) {
            if (rev[i] < 0) {
                Data cur;
                map<int, int> mpl, mpr;
                for (auto& s : ss) {
                    if (s.size() == 1 && s[0] == ori[i]) {
                        cur.c1++;
                    }
                    if (s.size() == 2) {
                        if (s[0] == ori[i] && s[1] == ori[i]) {
                            cur.c2++;
                        }
                        else if (s[0] == ori[i]) {
                            int to = revori(s[1]);
                            if (rev[to] >= 0) {
                                cur.vl.push_back(rev[to]);
                            }
                            else {
                                mpl[to]++;
                            }
                        }
                        else if (s[1] == ori[i]) {
                            int to = revori(s[0]);
                            if (rev[to] >= 0) {
                                cur.vr.push_back(rev[to]);
                            }
                            else {
                                mpr[to]++;
                            }
                        }
                    }
                }
                for (auto p : mpl) {
                    cur.vcl.push_back(p.second);
                }
                for (auto p : mpr) {
                    cur.vcr.push_back(p.second);
                }
                sort(all(cur.vl));
                sort(all(cur.vr));
                sort(all(cur.vcl));
                sort(all(cur.vcr));
                vector<int> ss;
                rep(i, n)if (ans[i] < 0)if (cur == mem[i]) {
                    ss.push_back(i);
                }
                assert(ss.size());
                if (ss.size() == 1) {
                    ans[ss[0]] = i;
                    rev[i] = ss[0];
                    break;
                }
            }
        }
    }
    string res;
    rep(i, n) {
        res.push_back(ori[ans[i]]);
    }
    return res;
}
void expr() {
    for (int n = 2; n <= 52; n++) {
        vector<string> vs;
        rep(i, n)rep(j, n) {
            int le = i * j / n;
            int ri = i * j % n;
            string cur;
            if (le)cur.push_back(ori[le]);
            cur.push_back(ori[ri]);
            vs.push_back(cur);
        }
        string ans = sol(n, vs);
        cout << ans << "\n";
    }
}

void solve() {
    int n; cin >> n;
    vector<string> vs(n * n);
    rep(i, vs.size())cin >> vs[i];
    string ans = sol(n, vs);
    cout << ans << "\n";
}



signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    //cout << fixed<<setprecision(10);
    //init_f();
    init();
    //while(true)
    //expr();
    int t; cin >> t; rep(i, t)
    solve();
    return 0;
}

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 11768kb

input:

2
3
a b a b b b b c cc
4
d d d d d c b a d b cd cb d a cb bc

output:

bca
dcba

result:

ok OK

Test #2:

score: 0
Accepted
time: 2ms
memory: 11864kb

input:

2
4
d a a bc ba bc b a a a d a a cb c c
4
a b da b b d ad b db b a c da b c b

output:

abcd
bdac

result:

ok OK

Test #3:

score: 0
Accepted
time: 154ms
memory: 12048kb

input:

50
3
b b b a a c b b cc
4
d ab c ad d b ba ab c b d d d d d a
5
a aa aa ab ab ae b b e c c c ba c c c c dd d d dd c e c e
6
a ca a a a a a a ce a a b ba ba bc bc bd be e c c ca a cd cd be d d dc dc e e a eb f f
7
a a a a a a a a cf a a a a b b b b c c c cf a dd d dc d dd e f ed ee ee fb eg eg eg eg ...

output:

bca
dabc
cadbe
abcdef
aefdcgb
fcheabgd
bhgfedcia
jhcgfideba
fjbadkegcih
klhgjbaedcif
igkjmclfedhba
nflijahgmbdcek
anmlfijbgkhdceo
nofmlkjchdbegipa
aponblgjihcfqdkme
iqmonhckfrpgjedlba
prisodmbkjqghfencla
tcrdpoaklmjihfgeqsbn
utiraponmlksghjfecdbq
qotsrvjunmlkpiegfhdcba
pvutsrhwoimlkjnqgfedbca
xbvuts...

result:

ok OK

Test #4:

score: 0
Accepted
time: 130ms
memory: 11996kb

input:

50
3
a a b c c c c bb c
4
a c ab b c ba ba c c a bc c c c d d
5
a a a b b b b b b c b d c b cc cc b d de e ea ed ed ee ee
6
a a ac ac b b b be ef c ca cb ea f cf d d e ca eb eb ec f ef c f f f f f f f f f cf ec
7
ag a a a ag b bb bb bd bd bf bf bf e bg c c c c c c c c c c c e c ga d da dd dd bf e e ...

output:

cba
cbad
becda
fecabd
cbgdafe
abgfechd
abhgeicdf
ahfdgcebij
bagedfcihjk
abcdhkgifjle
fkgdeachblijm
alcdbfgjihkmen
jfobedghiaklmcn
ahgdemcnijklfbop
aecdjlbhiqkfmnopg
aecdbfjhkimlgnopqr
afcdqbghriklmnopejs
dbcaefghijktmnosqrpl
qbisefgpcjklmnohdratu
pdcbeaghijmlknofqrstuv
aoedqfghijkclnbpmrstuvw
atcdef...

result:

ok OK

Test #5:

score: 0
Accepted
time: 143ms
memory: 12052kb

input:

50
3
a c a a bb b c a a
4
dc c a b b c ad c c c c c d da da a
5
a d a a a e a a ce a b bb bb c cc cc cd cd a d a e b e dc
6
d ab a ab b b ba ba bd bd bf c c d d a d d d eb d d d d e ea eb d ed ed ef ef f f f fe
7
a a a a ea f bb bb bg g cb cb cc cc f cd cd cd ce d d dc e e b ea ec ec ee eg eg f f f ...

output:

abc
cdab
acbde
debafc
fcebgda
gafedbhc
ihbfedagc
haiebjcfdg
chkefdigbaj
echkagbilfjd
ajcmhgbidklfe
ibmckfgaehndjl
ogfhbicekndljma
ngmdkpiblcfeajho
qlgbcipjkdehnfmao
qadoilgcepfbnjkhrm
kdiceagnlrjhbosfqmp
iakrbqdgmescjpnlhotf
nhedbluojtakqpgscrimf
esflhqkbnoamrduivgcptj
wmjqcgauvlhofdnpbsrteki
unsbtm...

result:

ok OK

Test #6:

score: 0
Accepted
time: 152ms
memory: 12028kb

input:

50
3
b a a c c c bb c c
4
a cb b d bc c cd a cb d d b d d d d
5
a a a b b dd c c cc d cc e db e da bd e db e e e e dd e e
6
a a b b f ed c c b cd d d db f dc df df e eb eb f be ed ef ef f f cd f ec f f f dc f f
7
fb a a a b b bf c c c ce ce d d g dd dd e e g ea ec ef ee ef ec f fb g fb fb fd fd fe f...

output:

cba
dcba
edcba
fedcba
gfedcba
hgfedcba
ihgfedcba
jihgfedcba
kjihgfedcba
lkjihgfedcba
mlkjihgfedcba
nmlkjihgfedcba
onmlkjihgfedcba
ponmlkjihgfedcba
qponmlkjihgfedcba
rqponmlkjihgfedcba
srqponmlkjihgfedcba
tsrqponmlkjihgfedcba
utsrqponmlkjihgfedcba
vutsrqponmlkjihgfedcba
wvutsrqponmlkjihgfedcba
xwvuts...

result:

ok OK

Test #7:

score: 0
Accepted
time: 145ms
memory: 12192kb

input:

50
3
a bb b a a c a c a
4
a b a a a a a a ba bc c cb c bc d d
5
a a a a bd a a a a b bb e a bd be c c cc db d e cc e bb d
6
a a a a a a e a ba d e b ba a bc bc bd be be c c ca ca cd cd ce d a dc dc e a a eb f f
7
a cg a a cb a a a a a c a a b bb bb bc bd bd bf bf bf bf a c cb a cc ce ce cg a d e ec ...

output:

abc
abcd
abcde
abcdef
abcdefg
abcdefgh
abcdefghi
abcdefghij
abcdefghijk
abcdefghijkl
abcdefghijklm
abcdefghijklmn
abcdefghijklmno
abcdefghijklmnop
abcdefghijklmnopq
abcdefghijklmnopqr
abcdefghijklmnopqrs
abcdefghijklmnopqrst
abcdefghijklmnopqrstu
abcdefghijklmnopqrstuv
abcdefghijklmnopqrstuvw
abcdef...

result:

ok OK

Test #8:

score: 0
Accepted
time: 154ms
memory: 12112kb

input:

50
3
a c a a b bb a a c
4
b c b ab b b ad a c b d d b b da ad
5
c c c c dd c bb ed b e c c da a d a c e b de a bb dd c de
6
d a a c bf da a a a dc e a a a fd da c f fa a fc d fb b db e cd cd b a b fa a fd dc fb
7
fd f e g ff e g e e fc e bf e fb fd c e c g bg d ff e g a e bf df ba ab ab fd bg e ba f...

output:

abc
badc
cdbea
afdcbe
efbcadg
agdbhfec
bdifahcge
jfbgdeachi
ajhbgfeickd
fkjehgbidcal
clijmhgfbdeka
nibkjghafcdelm
bnlokjihgaedcmf
pfcmlboihkjednga
eponjlbgihdfqmcka
rijqnmlkgohpfecdba
sdgponmlkqihjefrcba
tsgiponflqakhrmedcbj
ltsiqpobmunjghrfedcka
vdtfrqponmsjkibgleucha
avutsrnpoqmldjihgfwkcbe
xwvstu...

result:

ok OK

Test #9:

score: 0
Accepted
time: 131ms
memory: 12156kb

input:

50
3
a c c c b bb c c a
4
dc a cd d da c a a b a a a a dc c b
5
be b d cc a a d bb e a be d d cc eb e c ba d d d d d bb c
6
e ad ef db b c ad db b d da c b fe f fe a b fb b b da fb b a b e fd fd d b b de b fa e
7
dd f bb de a bd c aa bb c e c f f f f ba f f aa ae f dc f db dc bg f ba g bg c g gb ed ...

output:

cba
adcb
dbcea
bfdaec
fbdaegc
eabdfcgh
abhfcegdi
jfcdbaehig
abcedfhigjk
khcfadgibjel
jdclefghibkam
lgcdejbhifknma
abcdehfligkjnmo
ikognfdhajblmecp
amoiefghdjblkpcnq
kbcdehgqioalmnjpfr
ancfesrhijklmgopqbd
amgdfcheijklbnopqrst
fbcdeoghrjkainlpqmstu
dbcoefhaijklmgnpqrstuv
nbcdefghiwkljaosqmptuvr
abcsuf...

result:

ok OK

Test #10:

score: 0
Accepted
time: 139ms
memory: 12108kb

input:

50
3
b cc a b b b a c b
4
ab c ba d a c c ba a d c c c c b bc
5
cc d bd c a a a be e b a a e a a a bb a db cc bd e d bb c
6
ed af af d be a ea fa fd c a b fa b e eb fb eb ef c d d b fd d f ef d f d d ed d d d d
7
c aa d ee g d g aa a ff f d be d d d e ac d d ea eb ea be d f af d eg g d b eb fb c ff ...

output:

bca
cbad
abcde
defabc
daefbcg
dhebagfc
bahifcdeg
bceagfdihj
gbhfkcdeiaj
jialecgbfdkh
idjcgfkaemhbl
ngbecmjafkhdil
bcoeaidjnkfglhm
emnodgaihcfpjklb
bqcgofjinlaekphdm
kgceolrnhqipbafdjm
eflgbscoqpndmkajhir
bgmfthncdekqjrapiosl
sdhtprilkobacqjnmgeuf
bjqtdlfurspvcaehoingkm
lderwoqsjpnhvfmcbuikgat
noukih...

result:

ok OK

Test #11:

score: 0
Accepted
time: 159ms
memory: 12244kb

input:

50
3
c c c bb a a c c b
4
b d cb cb b a bc d d cd d c a d d d
5
c b e e bd da e d cc dd a e e db e db b e a a dd c e e cc
6
eb df f f eb d be f f c d a f df cd c dc b ef dc f f e ec f ef b cd ed db f f ed a b f
7
g fb ea b ec fe g f c bf c g dc dd b e g fb d ec ef ee ce ff c a fd g ef dd e g d g fb ...

output:

cba
dcba
edcba
fedcba
gfedcba
hgfedcba
ihgfedcba
jihgfedcba
kjihgfedcba
lkjihgfedcba
mlkjihgfedcba
nmlkjihgfedcba
onmlkjihgfedcba
ponmlkjihgfedcba
qponmlkjihgfedcba
rqponmlkjihgfedcba
srqponmlkjihgfedcba
tsrqponmlkjihgfedcba
utsrqponmlkjihgfedcba
vutsrqponmlkjihgfedcba
wvutsrqponmlkjihgfedcba
xwvuts...

result:

ok OK

Test #12:

score: 0
Accepted
time: 128ms
memory: 12228kb

input:

50
3
a a c c a b a a bb
4
b a c a a ba c a a a cb d d bc bc a
5
a db c e d e a d a a bd bb a e a b c bd be cc a bb a cc a
6
d ca a c d a c bc e f be ca ba a a ba b a eb cd bd a ce dc bc dc cd f a e a a a e be a
7
cb fb g ec cg a bf bd e d a cb a g a e dd f a c a cg bf bd bf g bf c d f a a e bc a ce ...

output:

abc
abcd
abcde
abcdef
abcdefg
abcdefgh
abcdefghi
abcdefghij
abcdefghijk
abcdefghijkl
abcdefghijklm
abcdefghijklmn
abcdefghijklmno
abcdefghijklmnop
abcdefghijklmnopq
abcdefghijklmnopqr
abcdefghijklmnopqrs
abcdefghijklmnopqrst
abcdefghijklmnopqrstu
abcdefghijklmnopqrstuv
abcdefghijklmnopqrstuvw
abcdef...

result:

ok OK

Test #13:

score: 0
Accepted
time: 5ms
memory: 11776kb

input:

50
2
a b a a
2
a a a b
2
a a a b
2
b b b a
2
b a a a
2
b b b a
2
a b a a
2
a b a a
2
a a a b
2
a b b b
2
b b b a
2
b a a a
2
a b a a
2
a a b a
2
b a b b
2
a a b a
2
a a a b
2
b b a b
2
b b b a
2
a a b a
2
a b a a
2
a a a b
2
b b b a
2
a a a b
2
a b a a
2
a a a b
2
b a b b
2
a b b b
2
a a a b
2
a a a...

output:

ab
ab
ab
ba
ab
ba
ab
ab
ab
ba
ba
ab
ab
ab
ba
ab
ab
ba
ba
ab
ab
ab
ba
ab
ab
ab
ba
ba
ab
ab
ba
ab
ab
ba
ba
ba
ab
ba
ba
ba
ab
ab
ab
ab
ab
ab
ab
ba
ba
ba

result:

ok OK

Test #14:

score: 0
Accepted
time: 577ms
memory: 12116kb

input:

50
52
uj Tp xo WR CE Ht q Wt RM sS mq Io ln TK eZ jH o mC hV ha hi a JH in hQ j Fg ar Wf Fp JH KR k xo gE qn az V Rs Pw nu un qv hH jH Da YK es XI b ec FN yg Z Tr Bw Ob gt pD k eo Xv lc no ln hz RW RF BZ rF yu k CI zu qJ Yz ex aI eU bn HW ej eo jP I jp xr ue yR V Tu zo Mv eh gz Xz mv FI hz mV ah Dh ...

output:

kehTRmxJHXqyrljaWYOSwigsnUzDuZbPtdCBIMcFpLNfvEGKoAVQ
RjxrlcZngyWomHJtIOBYTUPViCvuGpXkQSdALDwzbfNaqFMhEseK
FUcwvoLARpnGBQCDWdagNjyuthlYXefPJirZMSsbqHmIkTxzKOEV
OujFdfKkElwsJLVmMYSZpXIeHDRyhACBvzroGcbtnagPNxUTWiQq
wYtmrEDWGqIyVLNiHxzeTcgFkdQpBXnPZjKvARsJOoUbaSulfMhC
SwZAyhRNJgMFOnWoDpbLTEXlBackuqjetIs...

result:

ok OK

Test #15:

score: 0
Accepted
time: 619ms
memory: 12144kb

input:

50
52
A A A AF AF AF AF AJ AJ AK AK AK AK AN AN AU AU AX AX AZ AZ Ab Ab Ab Ab Ah Ah Ah Ah Ar Ar As As At At Av Av Aw Aw B B BC BC BE BE BF BF BI BI BK BK BK BK BL BL BL BL BM BM BM BM BM BM BN BN BP BP BR BR BR BR BT BT BV BV BV BV BZ Bb Bb Bc Bc Bf Bf Bh Bh Bh Bh Bh Bh Bh Bh Bh Bh Bn Bn Bn Bn Bn Bn...

output:

ZYXWVUTSRQPONBLzJIHGFEDwMAKyxCvutsrqponmleaihgfkdcbj
ZsXWVUTGRQPONMwKLIHSFEDCBAzyxJvutmrqponYlkjihgfedcba
ZYXWVUTSRQlONMLKJIHGFBuwEAzyxCvDtsrqponmPkhijgfedcba
ZYXWVUTSRQmONwLKJIHGFEDxBAzyCMvrtsuqdonPlkjihgfepcba
ZcXWVUTSRkPONJLKMIHGFEDCBAzylwautsrqponmxQjihgfedYbv
ZYXgVUTSwQPONMLKJIHGFyDCBezExRkutsr...

result:

ok OK

Test #16:

score: 0
Accepted
time: 505ms
memory: 12084kb

input:

50
52
A A A A AC AC AI AI AO AO AP AP AQ AQ AR AR Ab Ab Ai Ai Aj Aj Am Am An An Ao Ao Ao Ao Aq Aq Ar Au Au Az Az B B B B BF BF BK BK BK BK BK BK BN BN BO BU BU Ba Ba Bc Bc Be Be Bg Bg Bj Bj Bj Bj Bo Bo Bp Bp Br Br Bw Bw C C C C C C CA CA CD CD CG CG CO CO CS CS CW CW CW CW CX CX Cb Cb Cg Cg Cj Cj Co...

output:

abcdefghiylPmnWpqrstuvwxjzABCDEFGHIJKLTNOkQRSMUVoXYZ
abcdefghUjklmnopNrstSZwxyzuBCDEFGHIJKLMqOPQRATiVWXYv
cbadefghijklmnorqpstuUwMyzABCDEFGHIJKLxNPOQRSTvVWXYZ
abcdefghiSklmnopqrstuLwxTzABCDUFGHIJKyMNOPQRjvEVWXYZ
abcdefghijklmntpqrsvuowxyFAWCDEJGHIzKLMNOPQRSTUVBXYZ
absiefghdAklmnopqrctuvwxyzjBCDEFGYI...

result:

ok OK

Test #17:

score: 0
Accepted
time: 526ms
memory: 12180kb

input:

50
51
kt Dt kq nP Ec X Bh V FT LL qS bN Rx x Av mT mw ax wS h A bt vV GJ ni Hw vK bV d v mL bL ub gy mx h In AE TG cK Fj jj zk Xd yo mB LX FA br UI Fa Li bH Ad Q Jt K Cq A pH Gz NX ak Gh bT be Rf U Ga vK Ha Kh Fu TT vd yT KY GG S qe P KD CF FF jz Bf nK Rh vA ca jA Kj Hp tw w Al o RW Wf KU fm Mr Jt m...

output:

hGbHvRAImjLFKnCByWDJgqEMTcOaUkdzwPVoelNtXsxrYfQpuSi
FEfhbGwLQrljpSBzKoeTNJavguDycOCWtRPqidYxmAHVIkMUXsn
IRpyjwiSTkJnaBAdOsUQFMcrfhLeHgNGltobxPWzuEXYKDqmVCv
mMXWuYhVlSPoGHgNCBbdfcOrpyeRAtTaKvzxEILQnUisjwkFJDq
afoTPBRjStKgMHyLIOklcdvNwuFDEnVsGApYzXhmiWCeQUxqJbr
kFbiqnBwhMcPaHrNuQVeUJzgACmDfGxRXoyEsKSY...

result:

ok OK

Test #18:

score: 0
Accepted
time: 469ms
memory: 12180kb

input:

50
49
U ol fN hj aW n dQ qm OO ao T JQ an OO an QJ FF VV OT uE qE mK Cm Wj Op tA HH PR Rr ve Dn RV lP Op QO QW kV Od oL x Be IG Rz Ti o Mu VH OR pJ MU OL HS vB R qv Cu BF Vr BU l Ob z Qr ua Qt Qr nD dj aT RV vw ot JW dd dF cV OG RB nL qa aq Oq x F Qj bL RV lG nG Wj oM Vp Qx u Ho aS lL DU U U as JF O...

output:

UQavlfuROBodnpmIAVehiFqJGWCHLPMkgcKjDSbtTzENyxsrw
KILacmoApesfEWShBMtiVCwNxryUJlFnbqQPzukdDvOTgGRjH
ptndMgwRiVcPDoIThevubmCjlKOJHEBNsGzxaUQFqryWASfkL
kvPWwzdeQyGUfTauoqiFINpEtxgcDAmBROKMJVnCjrlbSLhsH
NWwrMBkDeCvtjLAVxTKOqmIEGuopyJRfsUHlgSzbhQPiaFcnd
nSWLMvKCODqdblNAtfUrxkQGFHheBpERIwjcaoyJsuTmzgViP
...

result:

ok OK

Test #19:

score: 0
Accepted
time: 298ms
memory: 12112kb

input:

50
43
je cx EP yb Mp fI lI Ob DO Dt Ct N fn LD N EC MM Dy cK Ly xI KL KG eu je Q s JJ Lm xJ jx ss g hk Le qJ sE yn qh vD D DI fH p wH ak ej so GK ld N Mk so Ks Jd hd sL qQ DA DH ud CC ix jF br je fe jp Lo JB p yc fE ix N DQ Jl lJ wl N N bA lE Bc lD Ju wi H KM eE Dw eu N fO ux qg rL Fz pe AC Jn lk q ...

output:

NDeifKJwBsjrFLxqMylbCmuOzcpgnahEHoAQPGItkvd
zpNbjomCFLuJEtgBfydscMieDHaqkPIvOlAwhKrxGnQ
entcwrboxQildHBaJMEupvkNKOGjPImDAygshLCFzfq
iMQCgvbzEhrNjHOpPacBuGfeLwJFAlxtkmonsqDKIdy
IPfKnucrslDNGeFhwjqvCaibQmtoMxAJgBpkHOdyzEL
LryNkBAGPpEvhxwbFIdMlaCsQzuienmHgofqDKtjOJc
DgpBicMksnjAbCtyELdfHJPvmKalOGFNouhw...

result:

ok OK

Extra Test:

score: 0
Extra Test Passed