Submission #242653

#TimeUsernameProblemLanguageResultExecution timeMemory
242653VimmerTavan (COCI16_tavan)C++14
80 / 80
5 ms384 KiB
#include <bits/stdc++.h> //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> //#pragma GCC optimize("unroll-loops") //#pragma GCC optimize("-O3") //#pragma GCC optimize("Ofast") //#pragma GCC optimize("fast-math") //#pragma GCC optimize("no-stack-protector") #define F first #define S second #define sz(x) int(x.size()) #define pb push_back #define N 200101 #define M ll(1e9 + 7) #define inf 1e9 + 1e9 using namespace std; //using namespace __gnu_pbds; typedef long double ld; typedef long long ll; typedef short int si; typedef array <int, 2> a2; //typedef tree <int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; int main() { //freopen("input.txt", "r", stdin); //freopen("output4.txt", "w", stdout); ios_base::sync_with_stdio(0); istream::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, m, k, x; cin >> n >> m >> k >> x; string s; cin >> s; vector <char> a[m]; for (int i = 0; i < m; i++) {a[i].resize(k); for (int j = 0; j < k; j++) {cin >> a[i][j]; if (0 <= a[i][j] - 'A' && a[i][j] - 'A' < 26) a[i][j] = char('a' + a[i][j] - 'A'); }sort(a[i].begin(), a[i].end());} int ps[m]; for (int i = 0; i < m; i++) ps[i] = 0; ll sm = 1, i; for (i = m - 1; i >= 0; i--) { sm *= k; if (sm >= x) break; } ll pos = 1; for (; i < m; i++) { sm /= k; while (pos + sm <= x && ps[i] + 1 < k) {pos += sm; ps[i]++;} } string ans = s; int j = 0; for (int i = 0; i < m; i++) { while (ans[j] != '#') j++; ans[j] = a[i][ps[i]]; j++; } cout << ans << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...