제출 #1248977

#제출 시각아이디문제언어결과실행 시간메모리
1248977bonicTavan (COCI16_tavan)C++20
80 / 80
0 ms780 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) { if (can) { C.push_back(A[i][0]); continue; } sum *= x; if (sum >= k) { can = true; C.push_back(A[i][0]); continue; } } 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...