思路

首先假设所有的名字都是不一样的,所以在遇到 Yes\texttt{Yes} 的时候就不需要进行处理。

当遇到 No\texttt{No} 的时候,可以直接假设 namei+k1=nameiname_{i+k-1}=name_{i}。这样假设有一个好处,因为当在访问 namei+1name_{i+1} 的时候,nameiname_i 就不会被考虑了,所以即使是 Yes\texttt{Yes} 也不会影响。

注意:翻译并没有翻译出名字的长度 lenlen,应该满足 len[1,10]len\in[1,10]

AC Code

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=100;
int n,k;
char c[N];
vector<char> ans[N];
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		ans[i].push_back(i%26+'A');
		ans[i].push_back((i+i/26)%26+'a');
	}
	for(int i=1;i<=n-k+1;i++){
		cin>>c;
		if(c[0]=='N') ans[i+k-1]=ans[i];
	}
	for(int i=1;i<=n;i++){
		for(char j:ans[i]){
			cout<<j;
		}
		cout<<' ';
	}
	return 0;
}