Submission

Status:

PPPTTTTTTT

Subtask/Task Score:

30/100

Score: 30

User: Name4mepls

Problemset: Rune

Language: cpp

Time: 1.096 second

Submitted On: 2026-10-16 00:17:18

#include <iostream>
#include <vector>
#include <string>
using namespace std;
#define endl << '\n'
#define sp << " "
int main(){
    int n,s;
    string rune;
    vector<vector<char>> table ={
    {'A','B','C','D'},
    {'B','A','D','C'},
    {'C','D','A','B'},
    {'D','C','B','A'}
    };
    cin >> n >> s >> rune;
    vector<int> prefix_sum(n);
    vector<char> prefix_rune(n);
    while (s>0){
        int visit=0;
        for(int i=0;i<n;i++){
            if(rune[0]!=rune[i]){
                break;
            }else visit++;
        }
        if(visit==rune.size()){
            cout << rune;
            return 0;
        }
        for(int i=0;i<n;i++){
            if(rune[i]=='A'){
                prefix_sum[i]=0;
            }else if(rune[i]=='B'){
                prefix_sum[i]=1;
            }else if(rune[i]=='C'){
                prefix_sum[i]=2;
            }else prefix_sum[i]=3;
        }
        for(int i=0;i<n;i++){
            if(i+1<n){
                prefix_rune[i]=table[prefix_sum[i]][prefix_sum[i+1]];
            }else prefix_rune[i]=table[prefix_sum[i]][prefix_sum[0]];
            rune[i]=prefix_rune[i];
        }
        s--;
    }
    cout << rune;
    return 0;
}