답안 #156425

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
156425 2019-10-05T15:08:42 Z Moses Tavan (COCI16_tavan) C++14
80 / 80
2 ms 376 KB
// Created by AboAbdoMC
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>

#define db1(x) cout<<#x<<"="<<x<<'\n'
#define db2(x,y) cout<<#x<<"="<<x<<","<<#y<<"="<<y<<'\n'
#define db3(x,y,z) cout<<#x<<"="<<x<<","<<#y<<"="<<y<<","<<#z<<"="<<z<<'\n'
#define rep(i,n) for(int i=0;i<(n);++i)
#define repA(i,a,n) for(int i=a;i<=(n);++i)
#define repD(i,a,n) for(int i=a;i>=(n);--i)
#define f first
#define s second
#define pb push_back
#define mp make_pair
#define ll long long

using namespace std;
using namespace __gnu_pbds;

typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> indexed_set;

const int OO = 1e9+7;
const int MOD = 1e9+7;
const int N = 5e2+7;

string ss[N];

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
   	
    int n,m,k,x;
    cin >> n >> m >> k >> x;
    x--;
    string s;
    cin >> s;

    rep(i,m) 
    {
    	cin >> ss[i];
    	sort(ss[i].begin(),ss[i].end());
    }
    ll tmp = 1;
    int j = m-1;
    repD(i,n-1,0)
    {
    	if (s[i] == '#')
    	{
    		s[i] = ss[j][(x/tmp)%k];
    		j--;
    		tmp *= k;
            if (tmp > x) tmp = OO;
    	}
    }
    cout << s << '\n';
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 376 KB Output is correct
6 Correct 2 ms 348 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
8 Correct 2 ms 376 KB Output is correct
9 Correct 2 ms 376 KB Output is correct
10 Correct 2 ms 376 KB Output is correct