제출 #1305661

#제출 시각아이디문제언어결과실행 시간메모리
1305661mikasaTavan (COCI16_tavan)C++20
80 / 80
1 ms576 KiB
#include<bits/stdc++.h> using namespace std; using intt=int32_t; #define debug(n,m) cout<<"["<<#n<<"]->"<<n<<m #define int long long #define all(x) x.begin(),x.end() #define pb push_back const int N=2e6+5; const int mod=1e9+7; const int inf=2e9; int a[N]; int n,m,k,x; int exp(int k,int n) { if (k<=1) return k; int pp=1; for (int i=1;i<=n;++i) { pp*=k; if (pp>x) return x+1; } return pp; } void levi() { cin>>n>>m>>k>>x; vector<vector<char>> v(m+1,vector<char>(k+1)); vector<int> p(m+1,0); int buf=0; string s; cin>>s; for (int i=1;i<=m;++i) { for (int j=1;j<=k;++j){ cin>>v[i][j]; } sort(all(v[i])); int cur=0; for (int j=1;j<=k;++j) { int comp=(j-1)*exp(k,m-i); //debug(comp,' '); if (buf+comp<x) p[i]=j,cur=comp; else break; } buf+=cur; } int cu=1; for (char el : s) { if (el=='#') cout<<v[cu][p[cu++]]; else cout<<el; } cout<<'\n'; } int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0);int tt=1;//cin>>tt; while(tt--)levi(); }
#Verdict Execution timeMemoryGrader output
Fetching results...