QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#464429#8829. Aibohphobiaucup-team3877TL 43ms3648kbC++2311.9kb2024-07-06 04:43:582024-07-06 04:43:58

Judging History

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

  • [2024-07-06 04:43:58]
  • 评测
  • 测评结果:TL
  • 用时:43ms
  • 内存:3648kb
  • [2024-07-06 04:43:58]
  • 提交

answer

//line 1 "answer.cpp"
#if !__INCLUDE_LEVEL__
#include __FILE__
int solve() {
    string s; input(s);
    ll n = sz(s);
    vl cnt(26, 0);
    rep(i, n) cnt[s[i] - 'a']++;
    debug(cnt);
    auto check = [&] (string &s) -> bool {
        vl cn(26, 0);
        rep(i, n) {
            debug(s[i], s[i] - 'a');
            cn[s[i] - 'a']++;
        }
        debug(cnt);
        debug(cn);
        assert(cnt == cn);
        rep(i, 2, n) {
            string si = s.substr(0, i);
            string si_n = si; reverse(all(si));
            if (si == si_n) return false;
        }
        return true;
    };
    ll nonzero = 0;
    rep(i, 26) {
        if (cnt[i] == 1) {
            string ans; ans += (i + 'a');
            rep(j, 26) {
                if (i != j) {rep(cnt[j]) ans += (j + 'a');};
            }
            YES();
            debug(ans);
            assert(check(ans));
            print(ans);
            return 0;
        }
        if (cnt[i] != 0) nonzero++;
    }
    if (nonzero <= 2) {
        NO();
        return 0;
    }
    ll first = true;
    string ans;
    rep(i, 26) {
        if (cnt[i] != 0)  {
            if (first) {
                first = false;
                ans += (i + 'a');
            } else {
                rep(cnt[i]) ans += (i + 'a');
            }
        }
    }
    rep(cnt[ans[0] - 'a'] - 1) ans += ans[0];
    debug(ans);
    YES();
    assert(check(ans));
    print(ans);
    return 0;
}
int main() {
    ll t; input(t);
    rep(t) solve();
}
#else
//line 2 "/home/seekworser/.cpp_lib/competitive_library/competitive/std/std.hpp"
#include <bits/stdc++.h>
#ifndef LOCAL_TEST
#pragma GCC target ("avx")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#endif // LOCAL_TEST
using namespace std;
using std::cout;
// shorten typenames
using ll = long long;
using pii = pair<int, int>; using pll = pair<ll, ll>;
using vi = vector<int>;  using vvi = vector<vi>; using vvvi = vector<vvi>;
using vl = vector<ll>;  using vvl = vector<vl>; using vvvl = vector<vvl>;
using vb = vector<bool>; using vvb = vector<vb>; using vvvb = vector<vvb>;
using vc = vector<char>; using vvc = vector<vc>; using vvvc = vector<vvc>;
using vd = vector<double>; using vvd = vector<vd>; using vvvd = vector<vvd>;
using vs = vector<string>; using vvs = vector<vector<string>>; using vvvs = vector<vector<vector<string>>>;
template<typename T> vector<vector<T>> vv(int h, int w, T val = T()) { return vector(h, vector<T>(w, val)); }
template<typename T> vector<vector<vector<T>>> vvv(int h1, int h2, int h3, T val = T()) { return vector(h1, vector(h2, vector<T>(h3, val))); }
template<typename T> vector<vector<vector<vector<T>>>> vvvv(int h1, int h2, int h3, int h4, T val = T()) { return vector(h1, vector(h2, vector(h3, vector<T>(h4, val)))); }
template <class T> using priority_queue_min = priority_queue<T, vector<T>, greater<T>>;
// define CONSTANTS
constexpr double PI = 3.14159265358979323;
constexpr int INF = 100100111; constexpr ll INFL = 3300300300300300491LL;
float EPS = 1e-8; double EPSL = 1e-10;
template<typename T> bool eq(const T x, const T y) { return x == y; }
template<> bool eq<double>(const double x, const double y) { return (abs(x - y) < EPSL * x || abs(x - y) < EPSL); }
template<> bool eq<float>(const float x, const float y) { return abs(x - y) < EPS * x; }
template<typename T> bool neq(const T x, const T y) { return !(eq<T>(x, y)); }
template<typename T> bool ge(const T x, const T y) { return (eq<T>(x, y) || (x > y)); }
template<typename T> bool le(const T x, const T y) { return (eq<T>(x, y) || (x < y)); }
template<typename T> bool gt(const T x, const T y) { return !(le<T>(x, y)); }
template<typename T> bool lt(const T x, const T y) { return !(ge<T>(x, y)); }
constexpr int MODINT998244353 = 998244353;
constexpr int MODINT1000000007 = 1000000007;
// fasten io
struct Nyan { Nyan() { cin.tie(nullptr); ios::sync_with_stdio(false); cout << fixed << setprecision(18); } } nyan;
// define macros
#define all(a) (a).begin(), (a).end()
#define sz(x) ((ll)(x).size())
#define rep1(n) for(ll dummy_iter = 0LL; dummy_iter < n; ++dummy_iter) // 0,1,...,n-1
#define rep2(i, n) for(ll i = 0LL, i##_counter = 0LL; i##_counter < ll(n); ++(i##_counter), (i) = i##_counter) // i=0,1,...,n-1
#define rep3(i, s, t) for(ll i = ll(s), i##_counter = ll(s); i##_counter < ll(t); ++(i##_counter), (i) = (i##_counter)) // i=s,s+1,...,t-1
#define rep4(i, s, t, step) for(ll i##_counter = step > 0 ? ll(s) : -ll(s), i##_end = step > 0 ? ll(t) : -ll(t), i##_step = abs(step), i = ll(s); i##_counter < i##_end; i##_counter += i##_step, i = step > 0 ? i##_counter : -i##_counter) // i=s,s+step,...,<t
#define overload4(a, b, c, d, e, ...) e
#define rep(...) overload4(__VA_ARGS__, rep4, rep3, rep2, rep1)(__VA_ARGS__)
#define repe(a, v) for(auto& a : (v)) // iterate over all elements in v
#define smod(n, m) ((((n) % (m)) + (m)) % (m))
#define sdiv(n, m) (((n) - smod(n, m)) / (m))
#define uniq(a) {sort(all(a)); (a).erase(unique(all(a)), (a).end());}
int Yes(bool b=true) { cout << (b ? "Yes\n" : "No\n"); return 0; };
int YES(bool b=true) { cout << (b ? "YES\n" : "NO\n"); return 0; };
int No(bool b=true) {return Yes(!b);};
int NO(bool b=true) {return YES(!b);};
template<typename T, size_t N> T max(array<T, N>& a) { return *max_element(all(a)); };
template<typename T, size_t N> T min(array<T, N>& a) { return *min_element(all(a)); };
template<typename T> T max(vector<T>& a) { return *max_element(all(a)); };
template<typename T> T min(vector<T>& a) { return *min_element(all(a)); };
template<typename T> vector<T> vec_slice(const vector<T>& a, int l, int r) { vector<T> rev; rep(i, l, r) rev.push_back(a[i]); return rev; };
template<typename T> T sum(vector<T>& a, T zero = T(0)) { T rev = zero; rep(i, sz(a)) rev += a[i]; return rev; };
template<typename T> bool in_range(const T& val, const T& s, const T& t) { return s <= val && val < t; };

template <class T> inline vector<T>& operator--(vector<T>& v) { repe(x, v) --x; return v; }
template <class T> inline vector<T>& operator++(vector<T>& v) { repe(x, v) ++x; return v; }

ll powm(ll a, ll n, ll mod=INFL) {
    ll res = 1;
    while (n > 0) {
        if (n & 1) res = (res * a) % mod;
        if (n > 1) a = (a * a) % mod;
        n >>= 1;
    }
    return res;
}
ll sqrtll(ll x) {
    assert(x >= 0);
    ll rev = sqrt(x);
    while(rev * rev > x) --rev;
    while((rev+1) * (rev+1)<=x) ++rev;
    return rev;
}
template <class T> inline bool chmax(T& M, const T& x) { if (M < x) { M = x; return true; } return false; }
template <class T> inline bool chmin(T& m, const T& x) { if (m > x) { m = x; return true; } return false; }
int digit(ll x, int d=10) { int rev=0; while (x > 0) { rev++; x /= d;}; return rev; }
/**
 * @brief std.hpp
 * @docs docs/std/std.md
 */
//line 3 "/home/seekworser/.cpp_lib/competitive_library/competitive/std/io.hpp"
// overload operators (prototypes)
template <class T, class U> inline istream& operator>>(istream& is, pair<T, U>& p);
template <class T> inline istream& operator>>(istream& is, vector<T>& v);
template <class T, class U> inline ostream& operator<<(ostream& os, const pair<T, U>& p);
template <class T> inline ostream& operator<<(ostream& os, const vector<T>& v);
template <typename T, typename S> ostream &operator<<(ostream &os, const map<T, S> &mp);
template <typename T> ostream &operator<<(ostream &os, const set<T> &st);
template <typename T> ostream &operator<<(ostream &os, const multiset<T> &st);
template <typename T> ostream &operator<<(ostream &os, const unordered_set<T> &st);
template <typename T> ostream &operator<<(ostream &os, queue<T> q);
template <typename T> ostream &operator<<(ostream &os, deque<T> q);
template <typename T> ostream &operator<<(ostream &os, stack<T> st);
template <class T, class Container, class Compare> ostream &operator<<(ostream &os, priority_queue<T, Container, Compare> pq);

// overload operators
template <class T, class U> inline istream& operator>>(istream& is, pair<T, U>& p) { is >> p.first >> p.second; return is; }
template <class T> inline istream& operator>>(istream& is, vector<T>& v) { repe(x, v) is >> x; return is; }
template <class T, class U> inline ostream& operator<<(ostream& os, const pair<T, U>& p) { os << p.first << " " << p.second; return os; }
template <class T> inline ostream& operator<<(ostream& os, const vector<T>& v) { rep(i, sz(v)) { os << v.at(i); if (i != sz(v) - 1) os << " "; } return os; }
template <typename T, typename S> ostream &operator<<(ostream &os, const map<T, S> &mp) { for (auto &[key, val] : mp) { os << key << ":" << val << " "; } return os; }
template <typename T> ostream &operator<<(ostream &os, const set<T> &st) { auto itr = st.begin(); for (int i = 0; i < (int)st.size(); i++) { os << *itr << (i + 1 != (int)st.size() ? " " : ""); itr++; } return os; }
template <typename T> ostream &operator<<(ostream &os, const multiset<T> &st) { auto itr = st.begin(); for (int i = 0; i < (int)st.size(); i++) { os << *itr << (i + 1 != (int)st.size() ? " " : ""); itr++; } return os; }
template <typename T> ostream &operator<<(ostream &os, const unordered_set<T> &st) { ll cnt = 0; for (auto &e : st) { os << e << (++cnt != (int)st.size() ? " " : ""); } return os; }
template <typename T> ostream &operator<<(ostream &os, queue<T> q) { while (q.size()) { os << q.front() << " "; q.pop(); } return os; }
template <typename T> ostream &operator<<(ostream &os, deque<T> q) { while (q.size()) { os << q.front(); q.pop_front(); if (q.size()) os << " "; } return os; }
template <typename T> ostream &operator<<(ostream &os, stack<T> st) { while (st.size()) { os << st.top() << " "; st.pop(); } return os; }
template <class T, class Container, class Compare> ostream &operator<<(ostream &os, priority_queue<T, Container, Compare> pq) { while (pq.size()) { os << pq.top() << " "; pq.pop(); } return os; }

template <typename T> int print_sep_end(string sep, string end, const T& val) { (void)sep; cout << val << end; return 0; };
template <typename T1, typename... T2> int print_sep_end(string sep, string end, const T1 &val, const T2 &...remain) {
    cout << val << sep;
    print_sep_end(sep, end, remain...);
    return 0;
};
template <typename... T> int print(const T &...args) { print_sep_end(" ", "\n", args...); return 0; };
template <typename... T> void flush() { cout << flush; };
template <typename... T> int print_and_flush(const T &...args) { print(args...); flush(); return 0; };
#define debug(...) debug_func(0, #__VA_ARGS__, __VA_ARGS__) // debug print
template <typename T> void input(T &a) { cin >> a; };
template <typename T1, typename... T2> void input(T1&a, T2 &...b) { cin >> a; input(b...); };
#ifdef LOCAL_TEST
template <typename T> void debug_func(int i, const T name) { (void)i; (void)name; cerr << endl; }
template <typename T1, typename T2, typename... T3> void debug_func(int i, const T1 &name, const T2 &a, const T3 &...b) {
    int scope = 0;
    for ( ; (scope != 0 || name[i] != ',') && name[i] != '\0'; i++ ) {
        cerr << name[i];
        if (name[i] == '(' || name[i] == '{') scope++;
        if (name[i] == ')' || name[i] == '}') scope--;
    }
    cerr << ":" << a << " ";
    debug_func(i + 1, name, b...);
}
template <typename T1, typename T2, typename... T3> void debug_func(int i, const T1 &name, T2 &a, T3 &...b) {
    int scope = 0;
    for ( ; (scope != 0 || name[i] != ',') && name[i] != '\0'; i++ ) {
        cerr << name[i];
        if (name[i] == '(' || name[i] == '{') scope++;
        if (name[i] == ')' || name[i] == '}') scope--;
    }
    cerr << ":" << a << " ";
    debug_func(i + 1, name, b...);
}
#endif
#ifndef LOCAL_TEST
template <typename... T>
void debug_func(T &...) {}
template <typename... T>
void debug_func(const T &...) {}
#endif
/**
 * @brief io.hpp
 * @docs docs/std/io.md
 */
//line 70 "answer.cpp"
#endif

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

5
a
sos
abba
icpc
tenet

output:

YES
a
YES
oss
NO
YES
iccp
YES
neett

result:

ok Correct (5 test cases)

Test #2:

score: 0
Accepted
time: 0ms
memory: 3592kb

input:

18
qnx
oooo
tvttj
zzzzz
pvlne
iijt
hjhjj
loo
hh
uq
mgvgv
ewwe
iii
kykk
o
mmumm
aetvv
xntl

output:

YES
nqx
NO
YES
jtttv
NO
YES
elnpv
YES
jiit
NO
YES
loo
NO
YES
qu
YES
mggvv
NO
NO
YES
ykkk
YES
o
YES
ummmm
YES
aetvv
YES
lntx

result:

ok Correct (18 test cases)

Test #3:

score: 0
Accepted
time: 0ms
memory: 3508kb

input:

138
gcseqpht
brrrzsrerr
ree
lgryyyh
wbxkwwwwx
hsihaga
kvvslzgv
dssd
qhrqqqrqyh
dfffffsfgf
ssuzuuzzs
rrwnyrcdnb
ealelecu
ccfwwwccwc
emeieme
xeexeswes
ymkkkkpkk
eimderoz
lflllh
lluylcll
rquqrqu
mllmllll
cscscc
ssssssssss
cn
llljlzlzj
h
kbbxahczit
yxrrrrxlkr
uikiakika
tntnnqntw
sjhxyfsy
fcyyyf
dbvbvdbw...

output:

YES
ceghpqst
YES
berrrrrrsz
YES
ree
YES
ghlryyy
YES
bkwwwwwxx
YES
gaahhis
YES
gklsvvvz
NO
YES
yhhqqqqqrr
YES
dfffffffgs
YES
suuuzzzss
YES
bcdnnrrrwy
YES
aceeellu
YES
fcccccwwww
YES
ieeeemm
YES
weeeessxx
YES
mkkkkkkpy
YES
deeimorz
YES
fhllll
YES
cllllluy
YES
qrruuqq
NO
NO
NO
YES
cn
YES
jlllllzzj
YES
...

result:

ok Correct (138 test cases)

Test #4:

score: 0
Accepted
time: 1ms
memory: 3568kb

input:

683
ufvvflppuvfu
ccgchccndvvtqcu
dqgqdddrgddjid
iiiiiiiiiiimiin
dqsiejxqqqq
kkkjzkkzkkvvkkk
aaeamagwzwagmni
bgddgdbbggdgb
xebbzbqrrx
tyxkqsyyclhyx
bjpdrrrrrrjrv
qzzqzzzqqq
ykgaykqyqqk
iefeeetaeeee
qqbabbfbslxfh
ovvczvcdcvecb
ieiiiaiqiiibii
hxeeeexeexxxxh
jxxxjxjrjjjx
jjzjjrzgqnjyj
rqqtzzptqopq
wbsyv...

output:

YES
lfffppuuuvvv
YES
dccccccghnqtuvv
YES
idddddddggjqqr
YES
miiiiiiiiiiiiin
YES
deijqqqqqsx
YES
jkkkkkkkkkkvvzz
YES
eaaaaaggimmnwwz
YES
bddddgggggbbb
YES
ebbbqrrxxz
YES
chklqstxxyyyy
YES
bdjjprrrrrrrv
NO
YES
agkkkqqqyyy
YES
aeeeeeeeefit
YES
abbbbffhlqqsx
YES
bccccdeovvvvz
YES
abeiiiiiiiiiiq
YES
ehhx...

result:

ok Correct (683 test cases)

Test #5:

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

input:

2713
ahrfzkzqahzahbqahzzu
vwwwdpdsopmwmdmss
zhkzhzjefkvnjfbxxbk
oawqeraqvqoqqg
eeeeedsxddeehzeehzee
afrzcqrhdqikqcvqcakj
xqkkkzqquqqkqqkdd
urtrttjuruttutruutut
mktgalyydawhgtcka
qjhjjxxqhhqxqx
fkfzfkffkfkkfffkkfz
byyyqbbboboyqqoobb
eyeyylrleeylerllrly
ggfgzqgyqvqlehnq
rrsjrrjrrjjjjrrrzrr
qyqqyycrqrr...

output:

YES
baaaafhhhhkqqruzzzzz
YES
odddmmmppsssvwwww
YES
ebbffhhjjkkknvxxzzz
YES
eaagooqqqqqrvw
YES
sdddeeeeeeeeeeehhxzz
YES
daacccfhijkkqqqqrrvz
YES
uddkkkkkqqqqqqqxz
YES
jrrrrttttttttuuuuuuu
YES
caaadgghkklmttwyy
YES
hjjjqqqqxxxxhh
YES
fkkkkkkkzzfffffffff
YES
booooqqqyyyybbbbbb
YES
ellllllrrryyyyyeeee
Y...

result:

ok Correct (2713 test cases)

Test #6:

score: 0
Accepted
time: 43ms
memory: 3648kb

input:

35444
vvgmvmmhtmgmmhvfhhhmhmqmqhmhhvf
aiiaaaaipaiapsspcppaaappppypapa
qgprgwugggggiqargigggugefgarg
ssikskkmiisksqsssssssn
dtvmryhhtikrrhmmhmmymrmimbvpvv
cpbpprllqzletlllplugkxf
sbpkbkbsptsbkkkbtbtsktkb
ngvnnvnvgcgcnvnngnnnnvgn
mhhyltymyjhynhhyymtyuuuyydjyyys
vlbkkgmtekutxaltkltttkkcakttlkl
njemezmg...

output:

YES
tffgghhhhhhhhhmmmmmmmmmmqqvvvvv
YES
caaaaaaaaaaaaiiiipppppppppppssy
YES
eaafggggggggggggggiipqqrrruuw
YES
miiikkkknqssssssssssss
YES
bdhhhhiikmmmmmmmmprrrrttvvvvyy
YES
bcefgklllllllppppqrtuxz
YES
bkkkkkkkppssssttttbbbbbb
YES
cgggggnnnnnnnnnnnnvvvvvc
YES
dhhhhhjjlmmmnsttuuuyyyyyyyyyyyy
YES
baaceg...

result:

ok Correct (35444 test cases)

Test #7:

score: -100
Time Limit Exceeded

input:

1
lllvrvrqtekpyfwztplrzmkfmlvllvjmzffllrmemmyjmlllwbiruatutvvumfttuemtjvmfvmjktlfzwmllfitqtvjtqftvergkqtebzjmwtvfjklklgjjevuuqrjzltrutklzytzvjyjuzlvjlivilvwtztijfrmvfkmfkiuxrtpftibbrlzvltbljbjtiqlzzjtyvljklvluutzqjvltenvtjlmtjyejvvlverflbvmkvjfwtlvrvmpbtpllvpbklqkulezkmrmltljvtklvitqelmvqvvfqfofkfyu...

output:


result: