どれでもドア:http://codeforces.com/problemset/problem/771/B
很有意思的一道题,题意也很简单
code
char c[6];int p=0,cnt=0;
string getnewname(){
string name="A";
c[0]=c[1]=c[2]=c[3]=c[4]=c[5]='a';
c[p]=c[p]+cnt;
for(int i=0;i<=p;i++){
name=name+c[i];
}
cnt++;
if(cnt==26){
cnt=0;
p++;
}
return name;
}
int main()
{
string str,prestr,s;
int n,m;
cin>>n>>m;
vector<string> ans;
n=n-m+1;
for(int i=0;i<n;i++){
cin>>str;
if(!i){
//prestr=str;
for(int j=0;j<m;j++)
ans.push_back(getnewname());
if(str=="NO") {
ans.pop_back();
ans.push_back(ans[0]);
}
}
else{
if(str=="YES"&&prestr=="YES")
ans.push_back(getnewname());
else if(str=="NO"&&prestr=="NO"){
vector<string>::iterator it= ans.begin()+i;
ans.push_back(*it);
}
else if(str=="NO"&&prestr=="YES"){
vector<string>::iterator it= ans.begin()+i;
ans.push_back(*it);
}
else if(str=="YES"&&prestr=="NO"){
ans.push_back(getnewname());
}
}
prestr=str;
}
vector<string >::iterator it=ans.begin();
for(;it!=ans.end();it++){
cout<<*it<<" ";
}
cout<<endl;
return 0;
}