队列入门
#include <iostream>
#include <queue> #include <cstring> #include <string> using namespace std; int book[200],in[200],out[200]; string ans[200]; int main() { int n,t; int flag=1; deque<int> q; while(cin>>n) { t=0; flag=1; memset(book,0,sizeof(book)); while(!q.empty())q.pop_back(); getchar(); for(int i=1;i<=n;i++) { char ch; scanf("%c",&ch); in[i]=ch-'0'; } getchar(); for(int i=1;i<=n;i++) { char ch; scanf("%c",&ch); out[i]=ch-'0'; } //for(int i=1;i<=n;i++) //cout<<in[i]<<" "<<out[i]<<endl; for(int i=1;i<=n;i++) { if(book[out[i]]&&q.back()==out[i]) { q.pop_back(); ans[t++]="out"; continue; }else if(book[out[i]]) { printf("No.\nFINISH\n"); flag=0; break; } int j; while(!book[out[i]]) { for( j=1;j<=n;j++) if(!book[in[j]]) break; book[in[j]]=1; q.push_back(in[j]); ans[t++]="in"; } ans[t++]="out"; q.pop_back(); } if(flag) { printf("Yes.\n"); for(int i=0;i<t;i++) cout<<ans[i]<<"\n"; printf("FINISH\n"); } } return 0; }