Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 24973 Accepted Submission(s): 9421
3 123 321 3 123 312
Yes. in in in out out out FINISH No. FINISH
For the first Sample Input, we let train 1 get in, then train 2 and train 3. So now train 3 is at the top of the railway, so train 3 can leave first, then train 2 and train 1. In the second Sample input, we should let train 3 leave first, so we have to let train 1 get in, then train 2 and train 3. Now we can let train 3 leave. But after that we can't let train 1 leave before train 2, because train 2 is at the top of the railway at the moment. So we output "No.".
1 #include<cstdio> 2 #include<cstring> 3 #include<stack> 4 char a[10] , b[10]; 5 using namespace std; 6 int main() 7 { 8 int n,i,j; 9 while(~scanf("%d",&n)) 10 { 11 scanf("%s %s",a,b); 12 stack<char>s; 13 for(j=0,i=0;i<n;i++) 14 { 15 char temp=a[i]; 16 s.push(temp); 17 while(!s.empty()&&s.top()==b[j]) 18 { j++; s.pop(); } 19 } 20 if(j==n) 21 { 22 printf("Yes.\n"); 23 { 24 for(j=0,i=0;i<n;i++) 25 { 26 printf("in\n"); 27 int temp=a[i]; 28 s.push(temp); 29 while(!s.empty()&&s.top()==b[j]) 30 { printf("out\n"); j++, s.pop(); } 31 } 32 } 33 } 34 else 35 printf("No.\n"); 36 printf("FINISH\n"); 37 } 38 return 0; 39 }