#include <bits/stdc++.h> using namespace std;

int main() { int N, K; long long X; cin >> N >> K >> X; vector S(N); for (int i = 0; i < N; i++) { cin >> S[i]; } vector Q = S; sort(Q.begin(), Q.end()); vector powN(K + 1); powN[0] = 1; for (int i = 0; i < K; i++) { powN[i] = powN[i - 1] * N; } vector result; long long x = X; for (int pos = 0; pos < K; pos++) { int rem = K - pos; int t = 0; while (t < N) { string cur = Q[t]; int cnt = 1; while (t + cnt < N && Q[t + cnt] == cur) { cnt++; }
long long sub_size = powN[rem - 1];
long long block = cnt * sub_size; if (x > block) { x -= block; t += cnt; } else { int idx = (x - 1) / sub_size; result.push_back(cur); x = (x - 1) % sub_size + 1;
break; } } } for (const string& s : result) { cout << s; } cout << endl; return 0; }

0 条评论

目前还没有评论...