Submission #98553

#TimeUsernameProblemLanguageResultExecution timeMemory
98553qwqHandwerTavan (COCI16_tavan)C++98
48 / 80
3 ms384 KiB
#include <algorithm> #include <iostream> #include <string> #include <vector> #include <cmath> #define FILE_IN(__fname) freopen(__fname, "r", stdin) #define FILE_OUT(__fname) freopen(__fname, "w", stdout) #define IMPROVE_IO() std::ios::sync_with_stdio(false) using std::cin; using std::cout; using std::endl; const int MAX = 500 + 10; int n, m, k, x; std::string s; std::string keywords[MAX]; char rep[MAX]; void Process(int now = 1) { int maxNow = 1 * std::pow(k, m - now); int i = 0; for (; i < k; ++i) { if ((i + 1) * maxNow >= x) break; } --i; rep[now] = keywords[now][i + 1]; x -= (i + 1) * maxNow; } int main() { IMPROVE_IO(); cin >> n >> m >> k >> x; cin >> s; for (int i = 1; i <= m; ++i) { cin >> keywords[i]; std::sort(keywords[i].begin(), keywords[i].end()); } for (int i = 1; i <= n; ++i) { Process(i); } for (int i = 0, cnt = 1; i < n; ++i) { cout << (s[i] == '#' ? rep[cnt++] : s[i]); } cout << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...