(codeforces)B. Bear and Different Names

来源:互联网 发布:郑州八度网络怎么样 编辑:程序博客网 时间:2024/06/06 10:39

どれでもドア: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;}
0 0
原创粉丝点击