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;
}