hdu1515

来源:互联网 发布:工业软件具体是什么 编辑:程序博客网 时间:2024/06/06 02:50
蒟蒻的自我拯救。。。
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <stack>#include <vector>using namespace std;char st[1000],re[1000];int len,ans[1000],tmp[1000],len2;void print(){    for(int i=0;i<2*len;i++)    {        if(ans[i]==1)        {            printf("i ");        }        else        {            printf("o ");        }    }    printf("\n");}void dfs(int pos , stack<char>ess , vector<char>pr,int num){    if(pos==len*2)    {        print();        return;    }    if(num<len)    {        ess.push(st[num]);        int k=ans[pos];        ans[pos]=1;        dfs(pos+1,ess,pr,num+1);        ans[pos]=k;        ess.pop();    }    if(!ess.empty())    {        char ch=ess.top();        if(ch==re[pr.size()])        {            pr.push_back(ch);            ess.pop();            int k=ans[pos];            ans[pos]=2;            dfs(pos+1,ess,pr,num);            ans[pos]=k;            ess.push(ch);            pr.pop_back();        }    }}int main(){    while(scanf("%s%s",st,re)!=EOF)    {        stack<char>s1;        vector<char>v1;        len=strlen(st);        len2=strlen(re);        if (len < len2)        {            printf("[\n]\n");            continue;        }        printf("[\n");        dfs(0,s1,v1,0);        printf("]\n");    }    return 0;}

0 0
原创粉丝点击