제출 #1248976

#제출 시각아이디문제언어결과실행 시간메모리
1248976bonicTavan (COCI16_tavan)C++20
48 / 80
0 ms328 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long

signed main() {
    int n, m, x, k; cin >> n >> m >> x >> k;
    string s; cin >> s; vector<string> A(m);
    vector<char> B(x);
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < x; j++) {
            cin >> B[j];
        }
        sort(B.begin(), B.end());
        string q = "";
        for (int j = 0; j < x; j++) {
            q = q + B[j];
        }
        A[i] = q;
    }
    reverse(A.begin(), A.end()); bool can = false;
    int sum = 1; vector<char> C;
    for (int i = 0; i < m; i++) {
        // cout << A[i] << " ";
        if (i != 0) {
            sum *= x;
        }
        int y = ceil((double)k/(double)sum);
        y = y % x;
        // cout << sum << " " << y << "\n";
        if (y != 0) {
            // cout << A[i][y - 1] << " ";
            C.push_back(A[i][y - 1]);
        }
        else {
            // cout << A[i][x - 1] << " ";
            C.push_back(A[i][x - 1]);
        }
    }
    reverse(C.begin(), C.end()); int l = 0;
    for (int i = 0; i < n; i++) {
        if (s[i] == '#') {
            cout << C[l]; l++;
        }
        else {
            cout << s[i];
        }
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...